了解最新公司動態(tài)及行業(yè)資訊
該問題的反面是“模塊計算機(jī)類型”X64“與目標(biāo)計算機(jī)類型”X86“沖突”,該問題的解決方法將在本文后面討論
這兩個問題看起來很相似,但是解決方法卻大相徑庭。 很多博主將兩者混淆,無法解決問題
原因分析
先看標(biāo)題中出現(xiàn)這個問題的原因。 模塊計算機(jī)類型“X86”是指計算機(jī)當(dāng)前調(diào)用的庫(lib或dll文件)位數(shù)為32位,目標(biāo)計算機(jī)類型“X64”是指當(dāng)前編譯平臺環(huán)境。 是64位的,兩者不匹配,所以有沖突
模塊電腦類型“X86”與目標(biāo)電腦類型“X64”沖突的解決
這個問題一般在你要生成64位的解時出現(xiàn),因為選擇了64位的平臺,很明顯你要得到64位的解。 網(wǎng)上很多博主給出的解決方案是將VS平臺環(huán)境調(diào)整為64位。 我看到的時候心里是:? ? ? 我? ? ,因為報錯已經(jīng)寫明了目標(biāo)計算機(jī)類型“X64”,很明顯平臺是64位的,沒有問題it技術(shù)員,不用調(diào)整,除非你想生成32位的解決方案,可以改成win32環(huán)境。
平臺沒有問題,剩下的就是模塊電腦類型“X86”的問題。 如果是在VS上運行,可以看到報錯的文件名。 比如我在構(gòu)建的時候報錯,報錯的文件是“.lib”文件,也就是這個文件是32位的。 我在cmd中安裝了llvm來編譯源碼,所以在編譯llvm時,系統(tǒng)默認(rèn)生成了一個32位的庫文件,導(dǎo)致在llvm基礎(chǔ)上編譯時出錯。
如果找到原因,就可以解決問題。 重新編譯llvm,生成64位的庫文件。 在cmd中,如果你使用
cmake -G "14 Win64"
編譯的時候,如果仔細(xì)看,會發(fā)現(xiàn)編譯開始的時候有一個提示it技術(shù)員,大概意思是“因為沒有選擇64位或者32位,所以系統(tǒng)會默認(rèn)編譯32位。如果你要編譯64位,請在cmd命令行加入-Thost=x64”,根據(jù)這個提示,這次用下面這句編譯
cmake -Thost=x64 -G " 14 Win64"
可以看到這次調(diào)用的是amd64文件夾下的內(nèi)容,生成了64位的庫文件,問題解決!
模塊電腦類型“X64”與目標(biāo)電腦類型“X86”沖突的解決
這個問題比較容易解決。 圖書館沒有問題。 只需將平臺更改為 x64。 網(wǎng)上有很多解決方案,大概是:
1、“鏈接器-”高級-“目標(biāo)計算機(jī)”設(shè)置為“(/:X64)”
2、“鏈接器-”命令行-“其他選項”設(shè)置為“/:X64/debug”
3、“-” -“ ”設(shè)置為“X64”,如果沒有,新建一個。
————————————————
原文鏈接: