Qtcreator與多個交叉編譯器問題

之前項目中使用的gcc爲4.4.7版本,後來因爲C++11的原因升級到了gcc4.8.3,但是在設置了Qtcreator中的構建套件後,重新編譯項目發現還是有錯誤:

這個錯誤感覺不像是項目出問題了,而更像是編譯器的問題,去qmake後生成的Makefile文件中看,果然雖然在Kit中指定了gcc4.8.3,但是Makefile中的CC和CXX還是gcc4.4.7:

這個問題會出在哪呢?難道是因爲沒把4.8.3的路徑加入環境變量中嗎?嘗試了一下,還是不管用,回到qtcreator的Build & Run中,看看各個項有什麼區別:交叉編譯器設置了兩個,Qt Versions只有一個,Kits有兩個,兩個交叉編譯器共用一個Qt Versions,如果有差異也就只有這一項了,打開Qt Versions的Details看,發現mkspec爲linux-mips-g++,而這個linux-mips-g++是我使用4.4.7版本編譯qt源碼時指定的,也就是說我gcc4.8.3的Kit配置的是gcc4.4.7版本編譯的Qt版本,而編譯項目時默認編譯器就自動指定了4.4.7版本的gcc(我猜的)。

而如何改到4.8.3版本呢?可以再pro文件中重新指定一次:

QMAKE_CC = /home/lpf/gcc-4.8.3-d197-n64-loongson/usr/bin/mips64el-redhat-linux-gcc
QMAKE_CXX = /home/lpf/gcc-4.8.3-d197-n64-loongson/usr/bin/mips64el-redhat-linux-g++

這樣Makefile中的CC和CXX就是你要的了,但是Makefile中還是會出現4.4.7的身影,如:

這些項好像並不影響項目的編譯,可以正常編譯通過,就是還沒移植測試過,不知道會不會有什麼問題...

要想不在pro文件中手動的指定CC和CXX,那就要麻煩一點了,需要使用4.8.3版本的gcc重新編譯qt源碼,然後在Kit套件中重新指定一份配置,這樣就有兩個交叉編譯器,兩個Qt Version,同樣也就有兩個不同配置的Kits了....

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章