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