歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

嵌入式Qt開發環境搭建及移植到開發板

原址: http://blog.sina.com.cn/s/blog_a2acdfc701015kt9.html
整了好多天的Qt移植,今天終於弄出來了。記錄一下學習過程,可把我鬧心死了。
先說說Qt源碼包,我剛裝Qt的時候非常亂,又有x11的,又有embedded的,還有everywhere的。現在明白了,安裝x11,可以開發在pc機下運行的應用程序,並且會生成一些Qt開發工具designer和qvfb。安裝embedded ,可以開發在開發板上運行的Qt應用程序。使用everywhere,需要解壓三份,使用不同的configure參數可以安裝不同平台的Qt,包括前面說的兩種。分別為x11,x86,arm。x86的程序可以運行在qvfb裡。這就可以不用開發板了。如果是windows裝Qt的話,只需要下載個exe文件直接安裝就行了。要配置環境變量。(最後再說)
再說說windows和linux下的Qt程序。
windows 下的Qt和Linux下的Qt可以一樣用的,只要在新的系統裡再重新使用qmake -project ;qmake;make(windows下是mingw32-make)三個命令編譯一下就行了。一定要設置好環境變量啊,否則找不到命令
一、.嵌入式Qt程序開發環境的搭建。
第一步:PC機安裝Qt。
在ftp://ftp.qt.nokia.com/qt/source下載Qt的源碼包。qt-everywhere-opensource-src-4.8.1.tar.gz 放到/root/Qt目錄下。
tar -zxvf qt-everywhere-opensource-src-4.8.1.tar.gz 命令解壓,將解壓後的目錄名稱改為qtx11.
#cd qtx11
#./configure
#gmake(這一步的時間相當長,四五個小時)
#gmake install
這是就安裝好了,安裝在/usr/local/Trolltech/Qt-4.8.1
#export PATH=” /usr/local/Trolltech/Qt-4.8.1/bin:$PATH”
#qmake -v(如能輸出版本號,則說明安裝成功)
接下來編譯qvfb。
#cd /root/Qt/qtx11/tools/qvfb
#gmake
#cp /root/Qt/qtx11/bin/qvfb /bin
#qvfb(如果能出現一個虛擬窗口,那麼說明編譯成功了)
第二步:安裝Qt for x86
#cd /root/Qt/
#tar -zxvf qt-everywhere-opensource-src-4.8.1.tar.gz命令解壓,將解壓後的目錄名稱改為qtx86.
#cd qtx86
#./configure-embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb(這個命令可以使應用程序在qvfb裡運行,節省開發板)
#gmake(很長時間)
#gmake install
安裝目錄在/usr/local/Trolltech/QtEmbedded-4.8.1/
#export PATH="/usr/local/Trolltech/QtEmbedded-4.8.1/bin:$PATH"
#qmake –v (如能輸出版本號,則說明安裝成功)
將上一步中編譯好的qvfb復制到/usr/local/Trolltech/QtEmbedded-4.8.1/bin中。
第三步:安裝交叉編譯工具,arm-linux-gcc,我的版本是4.3.2
#tar xvzf arm-linux-gcc-4.3.2.tgz -C / (C需要大寫,解壓後安裝在/usr/local/arm/4.3.2/
#vi /etc/profile (添加PATH)
添加如下內容exportPATH="$PATH:/usr/local/arm/4.3.2/bin"
#arm-linux-gcc -v (如果輸出版本號說明安裝成功)
第四步:交叉編譯tslib-1.4
下載tslib-1.4.tar.gz放到/root/Qt/目錄下
#cd /root/Qt/
#tar zxvf tslib-1.4.tar.gz
#cd tslib
#export CC=/usr/local/arm/4.3.2/bin/arm-linux-gcc //設定C編譯器
#export CXX=/usr/local/arm/4.3.2/bin/arm-linux-g++ //設定C++編譯器
#./autogen.sh (如果運行有錯誤則需要安裝autoconf、automake、libtool (如yum installautoconf))
#echo"ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache //避免檢查ac_cv_func_malloc_0_nonnull
# ./configure--host=arm-linux --cache-file=arm-linux.cache-prefix=/usr/local/tslib
#gmake
#gmake install (安裝在/usr/local/tslib裡面)
#vi/usr/local/tslib/etc/ts.conf (修改ts.conf) 最後內容如下:
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
(以下是在對應的開發版上使用,)
將上面整個/usr/local/tslib的內容下載到開發版裡的對應路徑下在(/usr/local/)
配置環境變量
添加如下內容:
exportTSLIB_ROOT=/usr/local/tslib
exportTSLIB_TSDEVICE=/dev/input/event0
exportTSLIB_CALIBFILE=/etc/pointercal
exportTSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
然後重啟開發板,在終端輸入./ts_calibrate會出現觸摸屏五點校准畫面,移植成功。
不過我輸入命令後沒有成功,只是把庫函數都挪了過來。
第五步:安裝Qt for arm
#cd /root/Qt/
#tar zxvf qt-everywhere-opensource-src-4.8.1.tar.gz命令解壓,將解壓後的目錄名稱改為qtARM.
#cd qtARM
#./configure –embedded arm –xplatform qws/linux-arm-g++-qt-mouse-tslib-I/usr/local/tslib/include -L/usr/local/tslib/lib
#gmake
#gmake install
安裝目錄在/usr/local/Trolltech/QtEmbedded-4.8.1-arm/
#export PATH=”/usr/local/Trolltech/QtEmbedded-4.7.1-arm/bin:$PATH”
然後輸入#qmake –v(如能輸出版本號,則說明安裝成功)
第六步:建立三個文件,用於三個環境變量的設置
#vi ~/.setenv-qtx11.sh
內容如下
export PATH=/usr/local/Trolltech/Qt-4.8.1/bin:$PATH
export QTDIR=/usr/local/Trolltech/Qt-4.8.1/
export LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.8.1/lib:$LD_LIBRARY_PATH
#vi ~/.setenv-qtx86.sh
內容如下
export PATH=/usr/local/Trolltech/QtEmbedded-4.8.1-arm/bin:$PATH
export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.8.1-arm/
exportLD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.8.1-arm/lib:$LD_LIBRARY_PATH
#vi ~/.setenv-qtARM.sh
內容如下
export PATH=/usr/local/Trolltech/QtEmbedded-4.8.1/bin:$PATH
export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.8.1/
exportLD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.8.1/lib:$LD_LIBRARY_PATH
接下來是如何使用:
假設已經有一個工程目錄是hello。
(1)想在電腦上運行。
#source ~/.setenv-qtx11(使環境變量生效)
#cd hello
#qmake -project
#qmake
#make
#./可執行文件
這樣就可以了
(2)想在qvfb上運行
#source ~/.setenv-qtx86(使環境變量生效)
#cd hello
#qmake -project
#qmake
#make
#qvfb &(打開qvfb,如果出錯的話,就打開x11裡的qvfb)
#./可執行文件 -qws
(3)想在開發板上運行
#source ~/.setenv-qtARM(使環境變量生效)
#cd hello
#qmake -project
#qmake
#make
這時的可執行文件就只能在開發板運行了。下載到開發板
(開發板裡需要有Qt的庫,直接從pc機裡拷過來就行了,,將/usr/local/Trolltech/QtEmbedded-4.8.1/lib下的libQtGui.so* 、libQtCore.so*、libQtNetwork.so* 復制到開發板目錄的/usr/lib目錄下。將交叉編譯器lib目錄下的libstdc++.so*、libpng.so* 復制到開發板目錄/usr/lib目錄下。)
設置開發板環境變量
#exportLD_LIBRARY_PATH=/usr/local/tslib/lib:/usr/lib/:$LD_LIBRARY_PATH
這時可以執行編譯好的Qt程序了。到程序所在目錄下再執行
./可執行文件 -qws
上述內容為linux下的環境配置。
假設windows下安裝的是Qt-2009-05,安裝目錄在D:/Qt/2009.05/
在我的電腦->屬性->高級->環境變量 ,編輯path變量。添加如下內容
;D:\Qt\2009.05\mingw\bin;D:\Qt\2009.05\qt\bin
這樣就可以使用qmake -project、qmake、mingw32-make命令了
Copyright © Linux教程網 All Rights Reserved