gTest和多个main()

时间:2011-02-23 19:34:04

标签: c++ eclipse googletest

我有一个Eclipse项目。所有测试用例都在一个* .cpp文件中。问题是这样我最终得到了两个main()函数。一个用于app本身,一个用于testcases。当然,Eclipse拒绝构建......我想在一个项目下将所有内容保存在一起(避免使用多个配置,SVN存储库等)。理想情况下,我想强制Eclipse构建两个可执行文件(一个用于app,一个用于testcases)。我快速浏览了Eclipse Makefile,但说实话,我不太清楚它是如何工作的。总是可以排除Main.cpp / Testcases.cpp并构建一个可执行文件,但它不是很优雅......

有相似经历的人吗?

2 个答案:

答案 0 :(得分:6)

我偶然发现了这个非常有用的链接:http://pezad-games.googlecode.com/svn/trunk/GTestTest/HOWTO

作者描述了如何在eclipse中使用一个项目设置gtest,同时拥有两个带有main()方法的源文件:一个位于名为“src”的目录中,另一个位于名为“test”的目录中。

因此他引入了一个名为“GTEST”的新配置(除了DEBUG / RELEASE) - 在此配置中,所有链接器/头包含都设置为 gtest ,并且还排除到src / [main]的.cpp:

  

main.cpp的属性>> C / C ++ Build>>设置:排除资源   来自构建

另一方面DEBUG& RELEASE配置不包括test / [main_test] .cpp。

答案 1 :(得分:1)

除了libgtest之外,你还在用libgtest_main链接吗?如果你没有在libgtest_main中链接,你应该很好。

如果要使用Eclipse CDT创建两个可执行文件,最简单的方法是让每个可执行文件都有一个单独的项目。如果您有共同的代码,则可以让一个项目引用另一个项目。