今天用VS 2017编译一个以前的VC++动态库项目,出现了一个链接器问题: LNK1104 无法打开文件"libcmtd.lib" 。
操作系统版本为:Windows 10 18362.145。
VS版本为:VS 2017 15.9.12。
步骤如下:
1、在项目上点击右键,选择【属性】,然后选择【链接器】,选择【常规】,找到【附加库目录】,然后在VS的安装目录中找到libcmtd.lib所在目录,有两个目录,一个是x86,一个是x64,然后添加合适的一个,我的目录是【C:Program Files (x86)Microsoft Visual Studio2017EnterpriseVCToolsMSVC14.16.27023libx86】。
2、添加目录后,找到【输入】,选择【附加依赖项】,将该库文件添加进去。
3、此时已经解决无法打开该库文件的问题。但是我的项目中遇到了另一个问题:error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2。检查后发现是代码生成的运行库设置不正确,由于之前工程输出是release模式,现在要调试,改成了debug模式,但是运行库没有改【多线程调试 (/MT)】,应该改为【多线程调试 (/MTd)】。
Done!