c++中出现error LNK1123: 转换到 COFF 期间失败的错误解决办法

 

在运行c++中出现error LNK1123: 转换到 COFF 期间失败的错误,这是很多人遇到的问题,从网络上收集了答案,下面的三种解决方案算是最全的了。

解决方案1:
原来机器上安装了VS2010非常正常,安装VS2012后,出现提示
错误    13    error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏,如图:
 出现的具体原因是微软的链接文件的格式变了(让人无语的微软)
 
微软官方给出的具体解决方法是给VS2010打SP1补丁。
下载地址是: http://www.microsoft.com/en-us/download/details.aspx?id=23691

解决方案2:
是嵌入清单的问题,于是对该工程以及所有依赖工程进行如下操作
右键->工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否]

1>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
1>CVTRES : fatal error CVT1100: 资源重复。类型: MANIFEST,名称: 1,语言: 0x0409

这个是由于日志文件引起的,可以将

项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”。

或者将

项目\属性\配置属性\链接器\清单文件\生成清单:原来是“是”,改成“否”。

我总结了下这个效果的处置方法:

1:假设名目是一个静态库,或许说,名目中没有本质的资源 文件 的时候,将嵌入清单改成“否”是可能处置的。

2:假设名目已有了资源 文件 ,将嵌入清单改成“否”是不行能处置效果的,除非你同时把这些资源 文件 移除掉。

论断,确保名目中没有资源 文件 的存在,且把嵌入清单改成“否”可能处置该效果,但这确实也失掉了资源 文件 的作用,没措施,谁让他是个Bug呢。

解决方案3:  

使用VS2012编译支持XP的MFC程序

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值