1. 程式人生 > >配置qtcreator的ARM編譯環境

配置qtcreator的ARM編譯環境

5 一不小心手賤點了QT IN PATHRebuildfuck了,又出錯了。而且出錯資訊顯示,Linux上的QT也用了arm-linux-g++在編譯,這當然要出錯了。到命令列,unsetCPLUS_INCLUDE_PATH,又到calculator目錄下,用本機的qmakemake,沒有錯誤。總結下,就是CPLUS_INCLUDE_PATH是所有的g++都會使用的一個環境變數。把export CPLUS_INCLUDE_PATH=/opt/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++:/opt/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++/arm-angstrom-linux-gnueabi
改成了export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/opt/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++:/opt/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++/arm-angstrom-linux-gnueabi,登出,測試,還是出錯。export|grep CPLUS,發現CPLUS_INCLUDE_PATH這個環境變數與來是沒有的,悲劇。此方法不通。又不斷的嘗試。我在想能不能把每個不同版本的g++include path都獨立開來。沿著這個方向,我找到了specs
,看了老半天,這個也不方便,要用自定義的覆蓋預設的specs,沒有配置檔案可以修改。後來找到了qmake的配置檔案去了,發現qmake.conf可以自定義g++  gcc的引數,興奮啊。找到了這個網頁http://doc.trolltech.com/4.5/qmake-variable-reference.html#qmakespec  從頭到尾大概的讀了便,QMAKE_CXXFLAGS 看上去比較靠譜,於是編輯/opt/qte/mkspecs/linux-g++/qmake.conf,裡面貌似沒有提到這個變數,但是檔案裡面include了幾個檔案。一一開啟這幾個檔案,最後在/opt/qte/mkspecs/common/g++.conf
裡發現了這個變數。原來的是QMAKE_CXXFLAGS += $$QMAKE_CFLAGS,我增加了一行QMAKE_CXXFLAGS += -I/opt/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++ -I/opt/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++/arm-angstrom-linux-gnueabi,然後把/etc/X11/xinit/xinitrc.d/cplus_include_path刪除,重新登陸,開啟qtcreator,先對QT IN PATH進行RebuildOK,沒有錯誤,然後對Qte 4.6.3 進行Rebuildwonderful,也沒有錯誤。終於把這個問題解決了。