修复VS2017 LNK1104 无法打开库文件错误之宏错误

1.问题描述:

使用Visual Studio 2017创建C++默认工程项目,编译报错,提示 LNK1104: 无法打开文件”MSVCRTD.lib”。

《修复VS2017 LNK1104 无法打开库文件错误之宏错误》

2.问题分析:

对比其他电脑程序环境,项目-属性-属性页-VC++目录:库目录,发现系统宏 $(VC_LibraryPath_x86) 有错误,部分路径不存在。错误路径为:C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\lib\Spectre\x86;… 正确路径为:C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\lib\x86; …  错误的路径中都多了 “Spectre\”。

《修复VS2017 LNK1104 无法打开库文件错误之宏错误》.

3.解决方法:

可以手动添加正确路径,或修正系统宏 $(VC_LibraryPath_x86)  设置。着重说明如何修正系统宏,经常繁杂搜索后,确定是 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Common.props 文件有错误,定位到行 “<VCLibDirMod Condition=”‘$(VCLibDirMod)’ != ‘true’ and ‘$(SpectreMitigation)’ == ‘Spectre'”>Spectre\</VCLibDirMod>” ,删去”Spectre\”即可。至于为何会发生如此错误,不得而知。

《修复VS2017 LNK1104 无法打开库文件错误之宏错误》

4.本文目的:

每个人遇到的问题大多数都是特定的,不可能尽相同,本文旨在告诉读者如果遇到此类错误或需要自定义VS系统宏时应如何进行,系统下有数百个 .props 属性设置文件,可使用 Everything、UltraEdit 工具,根据路径、文件名称、目标字符串等特征去搜索。

请注意,大多数宏都是多层嵌套的,甄别时有较大难度,建议修改验证时做好备份。

5.结果:

宏 $(VC_LibraryPath_x86)  内容修正后,编译成功。

《修复VS2017 LNK1104 无法打开库文件错误之宏错误》

    原文作者:firswof
    原文地址: https://blog.51cto.com/firswof/2439817
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞