链接到多个.obj以进行单元测试控制台应用程序

时间:2013-10-21 13:45:56

标签: c++ linker googletest

有一些问题,希望我能找到一些帮助。

我在Visual Studio 2012中的同一解决方案下有两个项目

我开始创建一个控制台应用程序,它以.exe格式输出,这是一个项目。

在另一个项目中,我设置了google test来对控制台应用程序项目中的类运行单元测试。

如果我能够将主项目编译成静态库,那么由于可以链接到.lib而不会出现问题,但这不是一个选项。

我发现链接到.obj但是我需要手动将每个链接输入到链接器中 - >输入,由于会有大量的课程,我可以看到这变得混乱。

如何解决此问题,有没有办法链接到同一文件夹中的所有.obj,或者是否有我缺少的选项?

1 个答案:

答案 0 :(得分:21)

我的配置与你的完全相同,这就是我所做的:

我使用visual studio的LIB实用程序将所有.obj文件放入.lib库中,然后我可以将我的gtest项目链接到它。

发出命令

lib /NOLOGO /OUT:"$(TargetPath).lib" "$(ProjectDir)\$(Configuration)\*.obj"

进入主项目的“构建事件”/“构建后事件”,您可以将控制台应用程序保存为.exe,同时将所有obj文件聚合到最新的库中。

希望它有所帮助!

顺便说一下,这个问题有点类似于这篇文章:Linker error - linking two "application" type projects in order to use Google Test我认为在这里链接它可能很有用。