如何为所有函数和类包含cpp文件但忽略main函数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为所有函数和类包含cpp文件但忽略main函数?相关的知识,希望对你有一定的参考价值。

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

if __name__ == "__main__":
    main()

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

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

答案

首先,您不应该以python方式执行此操作,而是编写一个小测试程序来测试您的库。为了设计它,python方式在C ++中并不常见,你不会让许多新朋友这样做。

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

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

如果找到非弱符号,链接器将覆盖任何弱符号。例如,如果你不编写自己的技巧,lex / flex会使用这个技巧来为你提供一个通用的主要技巧。

正如StoryTeller所说,它不符合标准,并不适用于所有平台。尤其不适用于Windows。

以上是关于如何为所有函数和类包含cpp文件但忽略main函数?的主要内容,如果未能解决你的问题,请参考以下文章

链接 C++ 文件

如何使 cmakelists.txt 编译使用在其他地方声明和实现的函数和类的 cpp

如何为 .cpp 文件中定义的所有类成员方法声明范围? [复制]

链接器如何知道两个源文件中哪个是主文件,另一个包含函数定义?

如何为父类构造函数提供值,其中父构造函数的参数比c#中静态void main的子类多? [关闭]

一个程序可以分为多个文件吗?