严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C1047 对象或库文件“.lib”是使用与其他对象(如“x64\Release\main.obj”)不同的

系列文章目录

前言

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C1047 对象或库文件“.\lib\SceneTempCal.lib”是使用与其他对象(如“x64\Release\main.obj”)不同的编译器版本创建的;请使用相同的编译器重新生成所有对象和库 SceneTest E:\osg\work\ThermalCharacteristics_20220628\SceneTest\LINK 1
在这里插入图片描述

一、错误原因

VS2019 开发,之前一直用的debug模式,代码编译正常

最近改为Release模式,一编译就出现这个错误:

LINK : fatal error C1047: 对象或库文件“.lib”是使用与其他对象(如“x64\Release\main.obj”)不同的编译器版本创建的;请使用相同的编译器重新生成所有对象和库

网上搜了一下,说是:

“我这几天也遇到了这个问题,用别人提供的lib,在vs2019下  debug模式可以运行,但release模式下就不行,出现了和你一样的错误。开始我还以为是lib不兼容,最后发现这个lib在LTCG下不能被解析,做如下改正即可:

Release模式下->配置属性->高级->全程序优化->使用链接时间代码生成 将这里的默认项 “使用链接时间代码生成”改为“无全程序优化”。 接下来就可以运行了。
在这里插入图片描述
在这里插入图片描述

一般低版本生成的lib都是可以被高版本编译器所用的,这个是兼容性的基础,呵呵!”

于是 改属性吧,改为 无全程序优化后,会报个另一个错,心想不能这么一直搞下去啊,肯定是哪不去了。

后来升级一下VS2019吧,

升级后重编译 也提示这个错,

但是这一次 属性里去掉无全程序优化后 再编译就通过了。

搞不懂,一个lib库 编译起来怎么还有这种情况?

记录一下,

参考

zoukankan

猜你喜欢

转载自blog.csdn.net/aoxuestudy/article/details/125498613
今日推荐