9

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

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

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

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

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

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

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

4

1 回答 1

25

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

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

下达命令

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

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

希望能帮助到你!

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

于 2013-10-31T15:45:36.467 回答