zoukankan      html  css  js  c++  java
  • 【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解决方法为 是;

    如果是编译.BundlesFormat7z的工程里,在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 linking
     
    Project Properties  -> Configuration Properties  -> Linker (General)  -> Enable Incremental Linking -> "No (/INCREMENTAL:NO)"
    2. turning off "Embed Manifest"
     
     
    但是我使用这两种方法均不奏效.
    Issue root cause: 系统更新或软件升级中,造成有多于一个版本的 Utility: cvtres.exe
    D:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/cvtres.exe
    C:/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。


    然后一想好像是啊,找啊找,居然没找到那个路径,然后只好Listary一下,找到了,突然想起当时为了保护c盘给装到D盘了,一改名,诶,OK了!再把上面那个设置的给改了,诶,还是OK,先知其然吧
  • 相关阅读:
    阿里DatatX mysql8往 Elasticsearch 7 插入时间数据 时区引发的问题
    通俗易懂 k8s (3):kubernetes 服务的注册与发现
    ReplicaSet 和 ReplicationController 的区别
    使用Go module导入本地包
    k8s之statefulset控制器
    终于成功部署 Kubernetes HPA 基于 QPS 进行自动伸缩
    Atitit drmmr outline org stat vb u33.docx Atitit drmmr outline org stat v0 taf.docx Atitit drmmr out
    Atitit all diary index va u33 #alldiary.docx Atitit alldiaryindex v1 t717 目录 1. Fix 1 2. Diary deta
    Atitit path query 路径查询语言 数据检索语言 目录 1.1. List map >> spel 1 1.2. Html数据 》》Css选择符 1 1.3. Json 》map》
    Atitit prgrmlan topic--express lan QL query lan表达式语言 目录 1. 通用表达语言(CEL) 1 1.1. 8.2 功能概述 1 1.2. Ongl
  • 原文地址:https://www.cnblogs.com/portb/p/12037345.html
Copyright © 2011-2022 走看看