error LNK1123: 转换到 COFF 期间失败

转载自:http://blog.csdn.net/zhouxicai/article/details/8365338

解决方案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程序

November 28, 2012, 16:31  Posted by   Posted in [Channel 8]

Visual Studio 2012发布一段时间了,使用起来感觉也不错。但是最近写一个小程序却遇到了比较麻烦的事情。

这个程序是使用Visual Studio 2012编写的MFC应用程序,编译后一直在Win7系统中Debug和运行,一切都正常。但是放到XP或2003等系统中运行就会提示“not a valid win32 application”。一开始以为文件损坏了,后来copy几次发现问题依旧。

然后搜索,发现有很多人提到了这个问题,主要是由于VS2012的原因,编译的程序不再支持XP了。不过MS官方也提到将发布一个补丁解决此问题。最初该补丁是包含在Visual Studio 2012 update 1 CTP 3中。搜索这个包发现已经不存在,后来才发现,在26号(也就是1天多之前)的时候已经发布了Visual Studio 2012 update 1的正式版,于是下载安装。

按照官方给出的提示,安装成功之后,打开VS2012,在项目上属性中,应该会存在配置属性-常规-平台工具集中出现“Visual Studio 2012 (v110 XP)”。非常遗憾的是这个Update 1的包是在线安装的,总是有一个包下载不下来,安装几次也无济于事。

无奈之下重新安装了一个Visual Studio 2010,不过将原来的工程再转为2010的工程就太麻烦了。好在这个时候从2012中再看工程的属性时,平台工具集中已经出现“Visual Studio 2010 (v100)”和“Visual Studio 2008 (v90)”了。于是重新生成工程,编译,然后就又出了问题。

这时遇到的问题是“LINK : fatalerrorLNK1123:转换到COFF期间失败: 文件无效或损坏”。继续搜索,发现这个问题也很常见,处理方法也比较一致,就是继续设置工程的属性,配置属性-清单工具-输入和输出-嵌入清单-否。

按照这个方法设置之后发现依旧不好用,可是貌似网上其他人都用此方法解决了问题啊,奇怪。后来突然发现系统右下角出现了Visual Studio 2010 sp1补丁的安装通知。想着可能以后还要用2010,于是拿以前下载好的sp1安装包安装。然后再次尝试,惊喜地发现问题居然解决了,终于编译出了可以在XP和2003中运行的MFC程序。

总结一下,就是安装VS 2010及其SP1,设置属性的嵌入清单为否,平台工具集为2010,重新生成即可。

其实这个也就是临时急着解决问题用的,估计过几天VS2012 update 1的网络安装稳定了,就可以直接使用2012的工具集编译出支持XP和2003的程序了。

解决方案4:

微软的东西就是这样,一旦出了问题,你只能选择重装,甚至是重装系统。我也采用这种笨方案。不过凭感觉可能与我以前在D盘安装过vc有关,有可能覆盖安装导致某些文件被破坏。于是我先卸载了VC,然后把文件夹D:/program files/Viusaul studios删除掉,以前就是安装的这个目录。然后重启电脑,重新安装了一下。又重新打开小项目,编译,通过了。

总结: 这些方法是从网上搜来整理的,经过我测试,方法2会起作用,但是我测试的三个项目,有一个项目始终不行,用方案1下载一个sp1包(约600M),安装后,重启,打开VS按照vs的弹出框提示安装其他补丁后,重新编译,问题解决!

时间: 2024-10-07 16:31:15

error LNK1123: 转换到 COFF 期间失败的相关文章

vs2010 > LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 问题说明: 例如:当安装VS2012之后,原来的.NET 4.0会被替换为.NET 4.5.卸载VS2012时,不会恢复.NET 4.0. l 链接器(link)通过调用cvtres.exe完成文件向coff格式的转换,所以出现这种错误的原因是cvtres.exe出现了问题. l 安装VS2012后,之前安装的VS2010的cvtres.exe就无法使用了(版本对不上).如果你的PATH环境变

VS2010编译Qt程序失败------error LNK1123: 转换到 COFF 期间失败:

error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏使用VS2010编译VC++项目的时候可能会出这个问题. 据说升级到SP1后可能问题解决,但是下载量太大,目前没有得到证实. 网上大多的方法都是说在“清单工具”中将嵌入清单改成“否”,但是这个不一定100%解决问题. 我总结了下 http://www.verydemo.com/demo_c278_i5203.html http://davidrobot.com/2014/06/qt5_vs2010_lnk1123_erro

无法启动"D\projects\hello\Debug\hello.exe" 系统找不到指定的文件。[LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏]

这两天安装Visual Studio遇到这样的一个问题,用自己的电脑和公司的电脑都出现同样的问题.两台电脑都是新系统,按理来说是没有问题的.但是一出现问题,对于我这个小白来说,还是耗费了挺多精力都无果.今天问公司一个c++同事,他说他也遇到这样一个问题,一百度就给我解决了.之前我真是浪费时间,我使用搜索引擎的方法不对.我是搜索错误提示“无法启动"D\projects\hello\Debug\hello.exe" 系统找不到指定的文件”.而他是搜索“LINK : fatal error

VS2010关于error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

前段时间自己的系统一直在安装更新.今天突然打开VS2010当运行的时候一直出现error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏这种错误.然后就百度 解决的方法: 1.项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是"是",改成"否". 或者将 项目\属性\配置属性\链接器\清单文件\生成清单:原来是"是".改成"否". (这种方法失效,网上大多数的解决的方法都是这样) 2.这个错误主要是由

Qt creator error: LNK1123: 转换到 COFF 期间失败: 文件无效或损坏(vs2010的嵌入式清单文件)

下面是vs2010导入别人文件时出现的问题的解决方案:VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次.在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资料,解决方案为:第一步:与上相同.第二步:将 项目|项目属性|配置属

彻底解决 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

最近我的VS2010不知道怎么回事,平时用的好好的,近期竟然出现了所谓的 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 头痛万分,查了各种资料一直无解,今天为了封装资源,嵌入清单,所以不惜血本仔细找了下,终于有解决方案了. 平时我们都是将  项目-->项目属性-->配置属性-->连接器-->清单文件-->嵌入清单 中的“是”改为“否”,不让他将清单嵌入,自然也用不着转换了,所以轻松编译.虽然麻烦点,每次新建项目都要设置,

解决方法: LINK : fatal error LNK1123: 转换到 COFF 期间失败

VS 2010下 打开实例 出现这样的错误:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏终极解决方案:VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次.在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error

vs2010出现fatal error LNK1123 转换到 COFF 期间失败

由于工作需要,从googlecode上面下载到了tesseract-ocr. 原来的工程是vs2008的,我本机上面有vs2010和vs2012,转换过来之后,一生成解决方案,出现如下的错误: 1>     正在创建库..\DLL_Debug\libtesseract302.lib 和对象..\DLL_Debug\libtesseract302.exp 1>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 1> 1>生成失败. =

改成 否“依然报LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”问题的解决

LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 . 这个bug说实话,还是挺让人蛋疼的!!! 问题发生原因: 我这里能跑2013+opencv249的程序. 然后现在 要弄一个2010上面写好的程序,直接移植过来,缺少 winres.h 然后后来又缺少winresrc.h然后发现,这一个一个弄起来就没完了,然后去windows sdk 里面也找不到,我想要的 winresrc.h.发现可能版本之间的兼容并没有我想象的那么好解决,于是我想版本低

vs2010 问题 >LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 问题说明:当安装VS2012之后,原来的.NET 4.0会被替换为.NET 4.5.卸载VS2012时,不会恢复.NET 4.0. l 当VS2012安装后,VS2010的cvtres.exe就无法使用了.如果你的PATH环境变量中VS2010的工具路径第一个出现,而且链接器需要将.res文件转换为COFF 对象格式,就会导致LNK1123错误. l 当VS生成PE文件头时,使用的cvtres