视觉c ++ 2017错误LNK2001

时间:2018-07-04 15:25:18

标签: c++ visual-c++ linker googletest

我研究了所有类似的主题,但没有找到解决方案。

我有一个带有3个项目的Visual Studio解决方案:

  1. 带有应用程序的主项目(标准Windows应用程序)
  2. 带有gtest的静态库项目
  3. 具有单元测试的项目(控制台应用程序)

    ->引用了上述两个项目(人民币->添加引用...)

    ->具有... / gtest和gtest / include的包含路径,以及来自主项目的包含路径

我能够编译项目1和2。当我尝试编译项目3时,出现以下问题:


3> UnitTesting.cpp 3> UnitTesting.obj:错误LNK2001:未解析的外部符号“ public:__ thiscall Stack :: Stack(void)”(?? 0callbacks @@ QAE @ XZ)

3> UnitTesting.obj:错误LNK2001:未解析的外部符号“ public:__thiscall Stack ::〜Stack(void)”(?? 1callbacks @@ QAE @ XZ)


换句话说,我可以看到第一个项目的* obj文件的链接问题(堆栈类在我要进行单元测试的第一个项目中定义)。

我看过以下内容:

  

要在单独的项目中使用符号,您需要在项目设置中包含lib文件。这是在项目属性的“链接器”部分的“输入”->“附加依赖项”中完成的。

上述问题是我的第一个项目中没有任何* lib文件(并且我不想从中创建一个库),每个类只有* obj文件(并且可执行文件)。

这是与其他相关主题中描述的问题不同的问题。在这种情况下,我不想链接库(* lib)。我想链接目标文件(* obj)。在g ++世界中,只需指定编译器/链接器的* obj文件列表即可。

g++ -o app first.obj second.obj third.obj

但是我不知道,我找不到如何在VC ++ 2017中链接它。

  

未链接包含符号定义的目标文件或库。在Visual Studio中,验证包含定义的源文件是否已构建并链接为项目的一部分。在命令行上,确认包含该定义的源文件已被编译,并且所生成的目标文件已包含在要链接的文件列表中。

->如何在VC ++ 2017中进行检查? ->在哪里可以打开链接器的详细输出?

请帮助我解决此问题。我是Visual C ++的新手。

0 个答案:

没有答案