天天看點

嚴重性 代碼 說明 項目 檔案 行 禁止顯示狀态 錯誤 C1047 對象或庫檔案“.lib”是使用與其他對象(如“x64\Release\main.obj”)不同的

系列文章目錄

文章目錄

  • ​​系列文章目錄​​
  • ​​前言​​
  • ​​一、錯誤原因​​
  • ​​參考​​

前言

嚴重性 代碼 說明 項目 檔案 行 禁止顯示狀态

錯誤 C1047 對象或庫檔案“.\lib\SceneTempCal.lib”是使用與其他對象(如“x64\Release\main.obj”)不同的編譯器版本建立的;請使用相同的編譯器重新生成所有對象和庫 SceneTest E:\osg\work\ThermalCharacteristics_20220628\SceneTest\LINK 1

嚴重性 代碼 說明 項目 檔案 行 禁止顯示狀态 錯誤 C1047 對象或庫檔案“.lib”是使用與其他對象(如“x64\Release\main.obj”)不同的

一、錯誤原因

VS2019 開發,之前一直用的debug模式,代碼編譯正常

最近改為Release模式,一編譯就出現這個錯誤:

LINK : fatal error C1047: 對象或庫檔案“.lib”是使用與其他對象(如“x64\Release\main.obj”)不同的編譯器版本建立的;請使用相同的編譯器重新生成所有對象和庫

網上搜了一下,說是:

“我這幾天也遇到了這個問題,用别人提供的lib,在vs2019下  debug模式可以運作,但release模式下就不行,出現了和你一樣的錯誤。開始我還以為是lib不相容,最後發現這個lib在LTCG下不能被解析,做如下改正即可:      

Release模式下->配置屬性->進階->全程式優化->使用連結時間代碼生成 将這裡的預設項 “使用連結時間代碼生成”改為“無全程式優化”。 接下來就可以運作了。

嚴重性 代碼 說明 項目 檔案 行 禁止顯示狀态 錯誤 C1047 對象或庫檔案“.lib”是使用與其他對象(如“x64\Release\main.obj”)不同的
嚴重性 代碼 說明 項目 檔案 行 禁止顯示狀态 錯誤 C1047 對象或庫檔案“.lib”是使用與其他對象(如“x64\Release\main.obj”)不同的

一般低版本生成的lib都是可以被高版本編譯器所用的,這個是相容性的基礎,呵呵!”

于是 改屬性吧,改為 無全程式優化後,會報個另一個錯,心想不能這麼一直搞下去啊,肯定是哪不去了。

後來更新一下VS2019吧,

更新後重編譯 也提示這個錯,

但是這一次 屬性裡去掉無全程式優化後 再編譯就通過了。

搞不懂,一個lib庫 編譯起來怎麼還有這種情況?

參考

繼續閱讀