【VC疑难】LINK : fatal error LNK1123: failure during conversion to COFF: file invalid
问题描述:刚上课第一天,老师让自己新建一个dialog,空程序运行,开始看老师演示的时候还在想这有什么意思,晚上很不在意的File→New一个,一运行就傻眼了,balabala,fatal error就出来了,惯用手法,Ctrl+C Then Ctrl+V,一看遇到的还不少
Lofter上的写的挺清晰http://tenz.blog.163.com/blog/static/60802417201231093752741/
Debug下编译, 会碰到的问题:
1. fatal error LNK1107: 文件无效或损坏: 无法在 0x2E0 处读取
解决方法:
项目-->项目属性-->配置属性-->清单工具-->使用FAT32解决方法为 是;
如果是编译.Bundles\Format7z的工程里,在Asm/7zCrcOpt.asm上右键属性,去掉常规-->命令行中的-omf
同样在Asm/AesOpt.asm中去掉-c以外的选项
原因:vs6和vs2008区别造成的,参数-omf为vc6服务的。
2. LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
解决方法:
项目-->工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否](博主注:Project→Dialog Properties→Configuration Properties→Manifest Tool→Input and Output →Embed Manifest)
项目-->项目属性-->配置属性-->清单工具-->使用FAT32解决方法为 是;
编译完之后,debug版在启动7zg.exe进行调试的时候会报一个错误, 提示 丢失msvcrtd90.dll文件, 只需要将
项目属性-->配置属性-->C/C++-->代码生成-->运行时库 改成多线程调试(Mtd)即可.
照着找了下,诶,还是不行,然后又找啊找,这位仁兄又有个想法http://www.th7.cn/system/win/201411/77471.shtml
使用VisualStudio 编译链接中可能出现如下错误:LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt网上有如下解决方法:1. disable incremental linkingProject Properties -> Configuration Properties -> Linker (General) -> Enable Incremental Linking -> "No (/INCREMENTAL:NO)"2. turning off "Embed Manifest"但是我使用这两种方法均不奏效.Issue root cause: 系统更新或软件升级中,造成有多于一个版本的 Utility: cvtres.exeD:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/cvtres.exeC:/Windows/Microsoft.NET/Framework/v4.0.30319/cvtres.exe而因不当造成VS目录下的cvtres.exe不在work.如果该Utinity在路径的前面,linker觉得需要转换一个.res文件为COFF对象格式,link将失败,显示error: LNK1123方法: 对VS下旧的Utility cvtres.exe删除或者重命名为cvtres.exe_old.或者重新安排 PATH 变量.参考文献:http://stackoverflow.com/questions/10888391/error-link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-inval-------------------关于 error: LNK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决方案【Qt】【 VS2010】近日因为换装硬盘重装了系统,于是不得不重新安装VS2010 Qt 这些个开发工具。安装过程都没什么问题,安装完了顺手点了个例子测试下好没好用,于是就出现了标题中的错误提示。之前处理过一次,时间久了就忘了,于是又一顿搜索解决了。这次长个心眼,记下,免得以后又忘了(写博客随笔什么的不好坚持啊,不得不鄙视下自己 )。正题开始。提示说明在转换到COFF文件因为错误失败了(VS2010装好了,一般是不会有[file invalid] 错的)。而完成转换工作的是cvtres.exe这个程序。出现上面错误的根本原因是系统中存在有多个版本的 cvtres.exe。系统目录下版本:C:/Windows/Microsoft.NET/Framework/v4.0.30319/cvtres.exe
VS目录下版本:C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/cvtres.exe
如果是64位系统,那么还有个在
C:/Windows/Microsoft.NET/Framework64/v4.0.30319/cvtres.exe
不过Framework 和Framework64下俩个版本是一致的,而且由于系统更新,一般比VS目录下的版本新。
到此解决方法也就明显简单了,只需要将旧版的重命名或者删除,不过我一般习惯重命名,比如在后面加上 -old。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」