作为我当前工作项目的一部分,我必须编写几个单元测试来测试我们主要软件的行为。
我们的解决方案采用以下方式构建:
有一段时间一切正常,我可以在主软件编译为.exe或.lib之间切换,然后运行测试没有任何问题。
然而,在某些时候,我在尝试编译单元测试项目时开始遇到链接器错误。和以前一样,我更改主软件的设置以编译为.lib,然后重新编译它。 .lib文件在正确的位置生成。然后我去编译单元测试项目,这会在已经实现的单元测试中向函数调用抛出大量“未解析的外部符号”链接器错误,我没有触及,并且在没有任何链接器错误之前编译好。但奇怪的是,如果我重建整个项目,一切都运转正常。
我的问题是,什么可能会突然导致这个链接器问题?
我尝试解决此问题的事情:
确保两个项目使用相同的字符集
确保单元测试项目与主软件正确链接。这意味着我将.lib添加为External Dependency
,将包含它的文件夹添加为Additional Library Directory
,并将包含头文件的文件夹添加为Include Directory
。