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

Linking to multiple .obj for unit testing a console application

本文关键字:应用程序 控制台 单元测试 obj 链接      更新时间:2023-10-16

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

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

我正在创建一个控制台应用程序的一些背景知识,该应用程序输出为.exe这是在一个项目中。

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

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

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

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

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

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

放置命令

lib /NOLOGO /OUT:"$(TargetPath).lib" "$(ProjectDir)$(Configuration)*.obj"
在主项目的"构建事件"

/"构建后事件"中,您可以将控制台应用程序保留为.exe,同时将所有 obj 文件聚合到最新的库中。

希望对您有所帮助!

顺便说一句,这个问题有点类似于这篇文章:链接器错误 - 链接两个"应用程序"类型的项目以使用 Google Test,我认为在这里链接它可能是有用的。