我在Visual Studio 2013中遇到标准Windows库链接器的问题。当我尝试构建C ++项目时收到以下消息:
使用平台工具集v100构建此错误消息:
error LNK1123: failure during conversion to COFF: file invalid or corrupt C:\Solutions\PatchManagement\Trunk\Main\Windows\PatchMgmtAgentsTest\LINK PatchMgmtAgentsTest
使用平台工具集v120构建此错误消息:
error LNK1104: cannot open file 'atlsd.lib' C:\Solutions\PatchManagement\Trunk\Main\Windows\PatchMgmtAgentsTest\LINK PatchMgmtAgentsTest
之前这个C ++项目和同一解决方案中的其他C#项目都是使用.NET 3.5在VS2008上编写的。现在它被迁移到VS2013和.NET 4.5.1。
此外,我有VS2008(其中旧版本的相同解决方案用于验证迁移)和VS2010用于其他解决方案。我找到了一些解决方案或提示,由于.NET 4.0或更高版本,或者由于某些Visual Studio变量环境导致冲突,可能会出现第一条错误消息。但是,我不能拒绝.NET 4.5.1。如何在我的情况下修复第一条或第二条错误消息?
答案 0 :(得分:1)
错误无法打开文件'atlsd.lib'可能正在发生,因为VS2013不再提供atlsd.lib,但您链接到使用较旧版本的工具集构建的库(例如VS2012)拉入atlsd.lib。
解决方案:
棘手的部分是找出哪个库正在拉入atlsd.lib。我通过在我的msysgit安装中运行grep
来回答这个问题,如:
grep atlsd * .lib
然后使用VS2013重建该库。