zoukankan      html  css  js  c++  java
  • 用VS2010进行CMAKE的时候“LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”

    由于要编译LTP,LTP在MINGW下又不能编译,所以忍痛安装了VS2010+CMAKE。

    由于VS在本科时候虐我千百遍,所以一直心存阴影。。。

    转入正题,当cmake的时候, 它提示 “LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”

    于是上网搜结果,基本上都是“VS 2010下,打开实例的时候出现错误”,附带传送门 http://bbs.csdn.net/topics/390121452

    解决方案也传送到这里:

    “VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次。
    在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资料,解决方案为:
    第一步:与上相同。
    第二步:将 项目|项目属性|配置属性|连接器|清单文件|嵌入清单 “是”改为“否”。
    第三步:一般计算机经过上两步设置就能解决问题了,但是如果还有问题,那就按一下方法解决:
    计算机是否为64bit操作系统,如是,继续2。
    查找是否有两个cvtres.exe。一个是C:Program Files(x86)Microsoft Visual Studio 10.0vcincvtres.exe, 另一个是C:WindowsMicrosoft.NETFrameworkv
    4.0.30319cvtres.exe。右键属性|详细信息 查看两者版本号,删除/重命名较旧的版本,或者重新设置Path变量。

    意外的是,治本的办法是第三步,删除旧版本的cvtres.exe后,就不需要每次都设置配置了。”

    但是但是!!咱们用的是CMAKE又不是VS2010的时候出的问题,所以我们还是得从源头找问题。

    转折点是在http://blog.csdn.net/rryr2/article/details/8221357里面说到的,

    VS2010和VS2012或者sv2008和VS2010,高版本VS编译都会出现,使用VS2008的D:Program FilesMicrosoft Visual Studio 9.0VCin目录下的cvtres.exe替换到VS2010版本VS目录下再编译成功。

    他提示VS不同版本直接的cvtres不一样,如果低版本的工程用高版本打开时会有标题中说的问题。又得知LTP是在VS2008里面编译的,所以把VS2008里的cvtres.exe拷到VS2010里面。cmake成功,搞定。

  • 相关阅读:
    高性能Javascript 选择器API学习笔记
    Backbone学习笔记二 Events
    递归用函数、存储过程实现的效果
    用触发器实现动态新增列
    局域网自动备份删除
    游标变量用法经典
    如何区分大小写字母、全角半角
    列的分拆显示
    2005的行列转换
    批量分离和附加数据库
  • 原文地址:https://www.cnblogs.com/zklidd/p/3838187.html
Copyright © 2011-2022 走看看