python - 如何为所有函数和类包含一个 cpp 文件但忽略主要函数?

标签 python c++

我以前使用 python,现在我正在转向使用 c++ 以提高效率。我以前有习惯用一个main函数来测试库文件,只是为了确保所有的函数和类都能正常工作。和

if __name__ == "__main__":
    main()

即使我需要为其他代码导入文件,它也能很好地工作。

但是,我不确定如何为 C++ 做同样的事情。我知道在我想包含该文件之前,我可以在库文件中注释掉 main 函数。但我真的很想知道 C++ 中是否有任何等效方法。

最佳答案

首先你不应该用 python 的方式来做,而是写一个小的测试程序来测试你的库。以 Python 方式设计它在 C++ 中并不常见,您不会交到很多新 friend 。

但如果您真的想这样做,您可以将 main 定义为弱符号。

int __attribute__((weak)) main() {
      [your code]
}

如果链接器找到非弱符号,它将覆盖任何弱符号。例如,如果您不自己编写,lex/flex 使用该技巧为您提供通用的 main。

正如 StoryTeller 所提到的,它不在标准范围内,也并非在所有平台上都可用。尤其是在 Windows 上。

关于python - 如何为所有函数和类包含一个 cpp 文件但忽略主要函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55932955/

相关文章:

c++ - 为什么我不能在 mac 上使用 g++ 运行这个简单的 c++ 代码?

c++ - 逻辑 CPU 计数返回 16 而不是 4

C++ 命名空间和在单独文件中定义类

c++ - 如何在 C++ 中用线程拆分 for 循环

Python - 一个字符串列在另一列中吗?

c++ - 具有结构的嵌套类的范围

python - 使用内部支持的优化器优化 scikit-learn 中 GPR 的 RBF 内核的内核参数

python - 将 linux telnet 的输出捕获到 python 脚本

Python ast(抽象语法树): get back source string of subnode

python - 验证等于 33 : fails in R, 的三个立方体之和在 Python 中是否有效