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

问题描述 投票:0回答:1

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

if __name__ == "__main__":
    main()

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

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

python c++
1个回答
3
投票

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

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

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

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

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