對不起,有許多類似的問題,但我確實發現Google搜索的CMake查詢總是會產生類似但不是相同的場景,與CMake命令衝突等等上!強制使用CMake進行32位編譯的正確方法
我需要強制我的項目構建32位二進制文件,因爲我必須鏈接一個只能用於32位的庫。我診斷此基礎上的錯誤信息,如:
/usr/bin/ld: i386 architecture of input file `*external-32bit-lib*' is incompatible with i386:x86-64 output
從我所收集的,我因此應使用:
set (CMAKE_CXX_FLAGS "-m32")
這並不改變的事情 - 我現在得到幾個這樣的錯誤:
/usr/bin/ld: i386 architecture of input file `*project-output-lib*' is incompatible with i386:x86-64 output
AND仍然會爲外部庫獲得相同的錯誤。我認爲這是因爲-m32
使gcc生成32位二進制文件,但ld仍然在嘗試64位輸出?進一步谷歌搜索這個問題沒有取得任何成功,所以如果任何人都可以驗證我是正確的,並給出正確的方式做到這一點,我將非常感激!
非常感謝!
感謝 - 即很可能的情況下 - 但如何將我這樣做,但CMake?這是做這件事最明智還是「正確」的方式?我做了乾淨順便:) – jazzbassrob 2011-04-27 14:45:20
已更新的答案。請參閱鏈接。我的意思是打掃你的手,你很髒:) – 2011-04-27 14:51:33
乾杯,但不幸的是,這個鏈接似乎沒有幫助。設置LDFLAGS似乎沒有效果... – jazzbassrob 2011-04-27 15:05:56