虛擬機器版本:vmare8.0.0
虛擬機器系統:ubuntu10.0
qt原始碼版本:
qt-embedded-free-3.1.0
花了些時間把虛擬機器上的qt
編譯環境弄好了,在現在總結一下配置過程以及遇到的問題。我的配置環境以及
qt版本號如上所述。
起初的時候我用工作的虛擬機器環境配置,這個環境是之前同事給我的,裡面怎麼配置的我也不太清楚,工作環境已經安裝了交叉編譯工具arm-none-linux-gnueabi
,我平時工作的時候都是用這個做交叉編譯,程式編譯好以後,直接放到嵌入式板子上執行就
ok了。在這個環境上編譯
qt原始碼的時候總是出錯,錯誤如下:
g++: error trying to exec 'cc1plus': execvp: no such file or directory
用這些錯誤資訊在網上找解決方法的時候,一般都是說原因是g++
沒有安裝或者
g++版本與
gcc版本不一致,按照網上的說法,我重新安裝
g++,首先安裝軟體包
build-essential
,安裝命令為:
apt-get install build-essential
,然後再安裝
g++,在安裝
g++前,檢視乙個下
gcc版本,命令為:
gcc -v
,得到gcc
版本為4.3
,於是我安裝與之相應的
g++版本,命令為:
apt-get install g++-4.3
,安裝完成後,再編譯源
qt**,仍然出現同樣的錯誤。我在這個問題上折騰了好久,但是仍然沒有解決,當時實在沒有辦法了,於是決定自己重新裝乙個系統,自己在系統上配置環境。
(ps:知道原因的大神不妨說下解決方法,我等是菜鳥,感謝先!)
決定自己重新裝乙個系統以後我就立刻行動起來,系統裝好以後,按照網上的方法配置環境。
一、建立arm
交叉編譯工具鏈
(這個過程是完全按照網上來,也沒有出現什麼問題)
在安裝qt/e
之前,應確保
arm-linux
交叉編譯工具鏈已經建立,如果還沒有可以參考以下步驟建立。
cross-2.95.3.tar.bz2(
或其他版本如
:cross-3.4.4.tar.bz2),
這是已經製作好的
arm交叉編譯工具鏈,只需解壓及建交環境變數即可使用。
2、把檔案
cross-2.95.3.tar.bz2
拷貝到乙個資料夾,這裡我用:
/usr/local/arm
這個目錄。 注意後面建立環境變數時要與之對應。
3、解壓
tar -xjvf cross-2.95.3.tar.bz2
4、建立環境變數
export path=/usr/local/arm/2.95.3/bin:$path
或者也可以寫進檔案 ~/.bashrc
中,這樣就不用每次開機都
export啦。
vim~/.bashrc
在後面加上 export path=/usr/local/arm/2.95.3/bin:$path
到此arm-linux
交叉編譯工具鏈就已經建好了。
二、編譯qt 1、
我是在qt原始檔,版本如上,因為網上建議用這個版本,具體如何好,我個人也不太清楚。這個**還有其他各種版本的
qt原始檔。
3、把檔案
qt-embedded-free-3.1.0.tar.bz2
拷貝到乙個資料夾,這裡我用:
/usr/local/arm
這個目錄。 注意後面建立環境變數時要與之對應。
4、解壓tar-xzvf
qt-embedded-free-3.1.0.tar.bz2
把解壓後的資料夾qt-embedded-free-3.1.0
改為qte
。(可以不改,這裡是為了方便,注意後面建立環境變數時要與之對應)
mv qt-embedded-free-3.1.0 qte
5、建立環境變數 vi
m~/.bashrc
在後面加上
export qtdir=/usr/local/arm/qte
export qtedir=$qtdir
export path=$qtdir/bin:$path
export ld_library_path=$qtdir/lib:$ld_library_path
請重新登陸,以使得環境變數生效)
6、配置qt
進入qt/e
目錄: cd $qtdir
輸入: ./configure -embedded arm -thread -no-cups -qvfb -depths 4,8,16,32
上述選項: -embedded arm
指目標平台為
arm;
-thread
表示支援
qt執行緒,本人開發當中用到;
-qvfb
表示支援虛擬緩衝幀工具
qvfb
;-depths 4,8,16,32
表示支援4,
8,16,
32 位的顯示顏色深度。還有很多選項就不一一枚舉,請檢視
./configure -help。
7、編譯
make sub-src // 指定按精簡方式編譯開發包,也就是說有些
qt 類未被編譯。
8、測試
至此編譯工作完成,最後測試一下是否能正常使用。我們可以用qt
自帶的例子來測試,如:
cd $qtdir/examples/aclock //或你自己新建乙個
qt工程也行
make clean //把原來的清掉
rm *.pro makefile //刪掉,重新建立工程檔案
qmake -project
qmake -spec $qtdir/mkspecs/qws/linux-arm-g++ -o makefile
-spec指定目標板的配置檔案,這裡我做的是
linux arm
平台,注意在這裡,
$qtdir/mkspecs/qws/linux-arm-g++ 它不是編譯器,是乙個配置檔案,而編譯時用的
編譯器是我們在第一步建立的arm
交叉編譯工具鏈裡面的編譯器。
make
成功以後就
表示qt/e
環境已經成功建立。
我在第六步編譯的時候遇到了個問題,
$qtdir/include/qvaluestack.h 這個檔案的
出錯,在網上搜了下,在
qt-2.3.7/src/tools/qvaluestack.h的第
57行,將
remove( this->fromlast() );
改為this->remove( this->fromlast () );
再重新編譯就好了。
至此我的虛擬機器qt
編譯環境已經配好,在配置過程中遇到的問題已經總結好,問題的解決方法,都是在網上找到,再次謝謝各位大神分享自己的知識與心得,謝謝!。下一步就是把開發板上的
qt環境配好,最後利用環境編寫自己的**。在下一步工作中肯定會遇到很多問題,到時候再請教網上的各位大神。
虛擬機器基本環境配置
sudo apt update sudo apt upgrade sudo apt install open vm tools sudo apt install dkms 檔案共享 sudo apt install open vm tools desktop 檔案拖放 2.sudo tar xvf ...
虛擬機器 python環境配置
1.安裝vmware 2.安裝ubantu 1 開啟vmware,開啟編輯 首選項,更改虛擬機器儲存的位置。2 建立新的虛擬機器 自定義 3 編輯虛擬機器 點選cd vcd 更改成自己的原始檔 4 點選開啟虛擬機器,若出現警告 vm無法連線mks套接字連線嘗試次數太多 警告,是因為服務沒有開啟,開啟...
centos虛擬機器環境編譯glog
2,解壓 unzip glog master.zip 3,編譯環境配置 請務必按照如下命令執行,否則會碰到附錄描述的編譯錯誤,折騰了我乙個上午的時間 yum install autoconf automake libtool 4,編譯 安裝 cd glog master autogen.sh con...