前兩天由於Ubuntu8.04頻繁死機,一激動給系統來了個大換血,裝了個Ubuntu9.04 Final版,重新編譯了一下QT4.5和Qt/Embedded 4.5。都是目前最新版本的(^O_O^)。記錄如下:
說明:
我的開發環境:
【硬件】: CPU:P4 2.8 內存:2G 硬盤:160G。
【操作系統】:Ubuntu 9.0.4。
【交叉編譯器】:armlinux-gcc-3.4.1
【用戶】:root
具體步驟與說明:
1. 下載源碼包
qt-x11-opensource-src-4.5.0.tar.bz2
qt-embedded-linux-opensource-src-4.5.0.tar.bz2
下載地址:ftp://ftp.qtsoftware.com/qt/source/
2.編譯及安裝qt-x11-opensource-src-4.5.0
qt-x11版本可以產生Qt開發工具,如designer等等,最重要的是可以得到qvfb,嵌入式的開發有了qvfb,就可以不需要實際的開發板,也可以開發Qt應程序。qt-embedded版本就是專門用於嵌入式方面的版本。
tar xjvf qt-x11-opensource-src-4.5.0.tar.bz2
cd qt-x11-opensource-src-4.5.0
./configure
make
make install
歷經漫長的編譯過程,約一個半小時,默認安裝在/usr/local/Trolltech/Qt-4.5.0下.編譯完成後源程序不要刪除,還有用。
3.編譯及安裝qt-embedded-linux-opensource-src-4.5.0
在用戶目錄下建立一個src目錄,用於存放編譯源文件qt-embedded-linux-opensource-src-4.5.0.tar.bz2。將其解壓得到qt-embedded-linux-opensource-src-4.5.0,重命名爲qt-embedded-linux-opensource-src-4.5.0-x86.再次解壓qt-embedded-linux-opensource-src-4.5.0.tar.bz2,並重命令爲qt-embedded-linux-opensource-src-4.5.0-arm.爲什麼有兩個複製呢?我們可以從他們的名字上就不難看出前者是適合x架構的,後者適合arm架構的,如果有開發板的話,可以只編譯qt-embedded版本成arm架構的就可以了,但是很多時候用qvfb的話,開發會方便很多,所以多編譯一個x86架構的也不錯。
mkdir ~/src
mv qt-embedded-linux-opensource-src-4.5.0.tar.bz2 ~/src
tar xjvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2
mv qt-embedded-linux-opensource-src-4.5.0 qt-embedded-linux-opensource-src-4.5.0-x86
tar xjvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2
mv qt-embedded-linux-opensource-src-4.5.0 qt-embedded-linux-opensource-src-4.5.0-arm
cd qt-embedded-linux-opensource-src-4.5.0-x86
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-x86 -embedded x86 -qvfb
make
make install
-------OK!qt-embedded-x86被安裝在/usr/local/Trolltech/QtEmbedded-4.5.0-x86下.
cd qt-embedded-linux-opensource-src-4.5.0-arm
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-arm -embedded arm
make
make install
-------OK!qt-embedded-arm被安裝在/usr/local/Trolltech/QtEmbedded-4.5.0-arm下.
4.至此我們已經安裝好了qt-x11版,即在PC機上運行的QT,qt-embedded-x86版(x86體系的嵌入式板子上運行的QT)和qt-embedded-arm(arm板子上運行的QT).下一步:設置環境變量
(1)qt-x11:
vi setenv.sh
添加如下內容:
PATH=/usr/local/Trolltech/Qt-4.5.0/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.5.0/lib:$LD_LIBRARY_PATH
保存退出.移到/usr/local/Trolltech/Qt-4.5.0中。
(2)qt-embedded-x86:
vi setenv.sh
添加如下內容:
QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-x86
PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-x86/lib:$LD_LIBRARY_PATH
保存退出.移到/usr/local/Trolltech/QtEmbedded-4.5.0-x86中。
(3)qt-embedded-arm:
vi setenv.sh
添加如下內容:
QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-arm
PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/lib:$LD_LIBRARY_PATH
保存退出.移到/usr/local/Trolltech/QtEmbedded-4.5.0-arm中。
我們在運行的時候分別運行對應的腳本即可,比如我們要用qt-x11:
cd /usr/local/Trolltech/Qt-4.5.0
source setenv.sh
然後就可以用qmake designer等工具了.
5.做到這一步還有qvfb沒有編譯,到qt-x11-opensource-src-4.5.0中重新編譯qvfb即可
cd qt-x11-opensource-src-4.5.0
cd /tools/qvfb
make --會在qt-x11-opensource-src-4.5.0/bin下生成qvfb,我們將它copy至/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin下
cp ../..bin/qvfb /usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin
6.做一個測試
cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86
source setenv.sh
cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86/demos/books
qvfb -width 640 -height 480 &
./books -qws
效果截圖: