除非重建整个解决方案,否则MSVS链接器错误

时间:2017-11-07 10:27:29

标签: c++ visual-studio visual-c++ visual-studio-2013 linker

作为我当前工作项目的一部分,我必须编写几个单元测试来测试我们主要软件的行为。

我们的解决方案采用以下方式构建:

  • 主要软件有自己的项目,编译为Win32 .exe
  • 单元测试是在不同的项目中,但在同一解决方案中。当我想运行测试时,我必须更改重新编译主软件以生成.lib静态库文件。

有一段时间一切正常,我可以在主软件编译为.exe或.lib之间切换,然后运行测试没有任何问题。

然而,在某些时候,我在尝试编译单元测试项目时开始遇到链接器错误。和以前一样,我更改主软件的设置以编译为.lib,然后重新编译它。 .lib文件在正确的位置生成。然后我去编译单元测试项目,这会在已经实现的单元测试中向函数调用抛出大量“未解析的外部符号”链接器错误,我没有触及,并且在没有任何链接器错误之前编译好。但奇怪的是,如果我重建整个项目,一切都运转正常。

我的问题是,什么可能会突然导致这个链接器问题?

我尝试解决此问题的事情:

  • 确保两个项目使用相同的字符集

  • 确保单元测试项目与主软件正确链接。这意味着我将.lib添加为External Dependency,将包含它的文件夹添加为Additional Library Directory,并将包含头文件的文件夹添加为Include Directory

  • 检查所有抛出错误的函数是否已实际实现并按预期使用。

0 个答案:

没有答案