`
robotmen
  • 浏览: 55677 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

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程序

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的弹出框提示安装其他补丁后,重新编译,问题解决!
分享到:
评论

相关推荐

    LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 的解决方法

    VS2010 LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 的解决方法

    LINK__fatal_error_LNK1123_转换到_COFF_期间失败_文件无效或损坏

    LINK__fatal_error_LNK1123_转换到_COFF_期间失败_文件无效或损坏,把老的版本盖就可以了

    coff错误,

    在本案例中,开发者在使用Visual Studio 2010进行动态库开发时遇到了"error LNK1123: 转换到COFF期间失败: 文件无效或损坏"的错误提示,这通常意味着在链接阶段出现了问题。 首先,我们需要理解LNK1123错误的本质。...

    VS2010程序相关问题解决方案

    错误信息“LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”是链接器(Linker)在处理对象文件(Object File)时遇到的问题,这可能是由于某些库文件、配置设置或系统组件的状态不正确导致的。...

    VS2010链接错误.txt

    解决VS2010链接错误:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

    cvtres.exe

    解决:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 在解决该问题是误删了此文件 方法:放在VC++2010 的安装目录下面..\Microsoft Visual Studio 10.0\vc\bin,替换源文件

    Visual Studio问题集锦by低调年华,未完待续.docx

    8. **error LNK1123: 转换到COFF期间失败**:这可能与嵌入清单有关。尝试将项目属性中的“嵌入清单”选项设为“否”,如果问题仍然存在,可能需要检查VS版本更新对项目的影响,或者重新创建项目。 9. **VC++运行库...

    windows下的QT安装

    1. 链接错误“LINK : fatal error LNK1123: 转换到COFF期间失败: 文件无效或损坏”。这个问题通常是由于.NET Framework的编译器版本不匹配导致的。解决方法是找到最新版本的CVTRES.exe,替换掉系统中旧版本的文件。 ...

    用Visual-Studio-2010运行C程序文件.docx

    - 如果编译过程中出现错误,如“LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”,可以尝试以下解决方案: - **第一步**:项目 -> 项目属性 -> 配置属性 -> 连接器 -> 清单文件 -> 将“嵌入...

    COFF问题解决方法

    连接器LNK是通过调用cvtres.exe完成文件向coff格式的转换的,所以出现这种错误的原因就是cvtres.exe出现了问题。

    C++连接Mysql数据库1

    - 如果出现`LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏`错误 - 项目属性 -> 配置属性 -> 链接器 -> 启用增量链接设置为“否” **MAC OS环境下配置:** - **MySQL + Xcode** 1. **下载...

Global site tag (gtag.js) - Google Analytics