Visual Studio C++项目无法链接CppUnitTest库问题排查
针对你遇到的链接器报错LINK : fatal error LNK1104: cannot open file 'x64\Microsoft.VisualStudio.TestTools.CppUnitTestFramework.lib',即使文件确实存在,大概率是以下操作细节出错,对应解决步骤如下:
平台配置不匹配
链接器报错里试图寻找x64\...前缀的库文件,说明当前编译的项目平台可能不是x64,导致你配置的附加库目录没生效,反而在当前输出目录下找文件。
操作:右键项目→属性→配置属性→常规,确认“平台”为x64;同时检查属性页上方的“配置”和“平台”下拉框,是否选中了你当前正在编译的目标(比如Debug/x64)。附加库目录的配置范围错误
你可能只给某一种配置(比如Debug)添加了附加库目录,但当前编译的是另一种配置(比如Release),导致配置没生效。
操作:右键项目→属性→配置属性→链接器→常规→附加库目录,将上方的“配置”下拉框选为“所有配置”,或者匹配你当前要编译的具体配置。路径空格引发解析问题
你的附加库目录包含空格(C:\Program Files\...),虽然VS通常能处理,但偶尔会出现解析异常。可以尝试给路径加上双引号,或者用短路径替代。
操作:将附加库目录修改为"C:\Program Files\Microsoft Visual Studio\18\Community\VC\Auxiliary\VS\UnitTest\lib\x64"(注意双引号是英文半角)。附加依赖项误写相对路径
检查附加依赖项是否不小心添加了x64\前缀,导致链接器在错误的路径下寻找文件。
操作:右键项目→属性→配置属性→链接器→输入→附加依赖项,确认仅填写文件名Microsoft.VisualStudio.TestTools.CppUnitTestFramework.lib,不要添加任何路径前缀。VS缓存或配置未生效
有时候VS的配置缓存会出现异常,导致修改的配置没有被正确读取。
操作:保存所有文件,右键解决方案→清理解决方案,再重新生成;或者关闭VS,删除项目目录下的.vs隐藏文件夹,重新打开项目编译。
内容的提问来源于stack exchange,提问作者David Partridge

