首先聲明我并不是喜新厭舊,我活著就是為了折騰!哈哈......(有點(diǎn)過了) 
很久沒有碰Qt了,因?yàn)樾枰砸浦惨幌翾t到arm上,沒有查閱最新版本到底有什么改動,但是總是忍不住的用新東東。想起公司老總說的一句話:人追求好的東西總是無止境的。他的本意是想說,雖然公司賣的是奢侈品,但是總是有許多客戶的,因?yàn)槿丝偸窍胫非蠛玫臇|西,包括物質(zhì)與精神世界,很有道理,這跟我們有了nokia之后總想著買iphone了是一個道理。淡定淡定......
==============================================================================
交叉編譯器:arm-linux-gcc 4.4.3(友善之臂提供)
平臺:Ubuntu 10.04
硬件:mini2440,256M Flash,X35 LCD
Tslib:Tslib-1.4
==============================================================================
在前面內(nèi)核和文件系統(tǒng)都是用4.1.2版本的交叉編譯器編譯的,本來沒打算換編譯器的,但是4.1.2編譯器無法編譯4.8.0版本qt,如果現(xiàn)在用qt應(yīng)用程序用高版本的編譯器會不會有什么問題?我是有這個擔(dān)心的,但是最終的實(shí)驗(yàn)結(jié)果是只要替換掉高版本的lib即可。而為了不出現(xiàn)不必要的麻煩,我將文件系統(tǒng)重新用arm-linux-gcc.4.4.3編譯了一遍。
一.準(zhǔn)備工作
移植之前首先確保LCD和觸摸屏移植成功?梢詤㈤啠
老規(guī)矩,第一步還是移植tslib。
- #tar xzvf tslib-1.4.tar.gz
- #cd tslib/
- #./autogen.sh
- #echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
- #./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no -prefix=/home/xura/opt/tslib
- #make && make install
- #cp -fr /home/xura/opt/tslib /home/xura/work/tslib(沒有則新建一個)
- #cd /home/xura/work/tslib/etc
- #vi ts.conf
去掉module_raw input前面的#號,同時把它的#號注釋項(xiàng)全部刪除,不要讓這些BT的東東擾亂了你的思維。 我的最終ts.conf內(nèi)容為:
- module_raw input
- module pthres pmin=1
- module variance delta=30
- module dejitter delta=100
- module linear
將tslib下載到開發(fā)板,我使用的U盤。當(dāng)然linux內(nèi)核要支持USB咯?梢詤⒖迹 http://blog.chinaunix.net/space.php?uid=20788517&do=blog&id=34705設(shè)置環(huán)境變量: 在開發(fā)板設(shè)置環(huán)境變量(我將tslib放置在/opt目錄下)
export T_ROOT=/opt/tslib export LD_LIBRARY_PATH=$T_ROOT/lib export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_TSDEVICE=/dev/input/event0 export TSLIB_PLUGINDIR=$T_ROOT/lib/ts export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf export TSLIB_CALIBFILE=$T_ROOT/pointercal export LD_LIBRARY_PATH=$T_ROOT/lib:$LD_LIBRARY_PATH
- chmod +x setenv.sh
- . setenv.sh
- cd /opt/tslib/bin
- ./ts_calibrate
進(jìn)行測試。如果一切正常,進(jìn)入下一步移植qt。
二.編譯Qt4.8.0
我的配置:
- #./configure -prefix /home/xura/work/qtearm_4.8.0 -embedded arm -no-opengl
- -no-qt3support -no-cups -no-dbus -no-3dnow -no-neon -no-phonon -no-openssl
- -no-svg -qt-mouse-tslib -I (我的tslib目錄/include) -L (我的tslib目錄/lib)
- #make && make install
編譯完成之后Qt被安裝在/home/xura/work/qtearm_4.8.0目錄下。
設(shè)置環(huán)境變量:
QTEDIR=/home/xura/work/qtearm_4.8.0 PATH=$QTEDIR/bin:$PATH LD_LIBRARY_PATH=$QTEDIR/lib:$LD_LIBRARY_PATH
#source setqteenv.sh
即可生效環(huán)境變量,使用qmake等工具了。
三.移植Qt
寫一個應(yīng)用程序,移植到開發(fā)板。
可以到qt的example或者demo里面找,這里我用自己寫的代碼做測試。用qt for PC測試:
qmake-->make-->
在ubuntu下面運(yùn)行結(jié)果:
用qtearm_4.8.0編譯之后,查看共享庫。
將程序與庫文件與下載到開發(fā)板,設(shè)置開發(fā)板的環(huán)境變量:
export T_ROOT=/opt/tslib
export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_TSDEVICE=/dev/input/event0 export TSLIB_PLUGINDIR=$T_ROOT/lib/ts export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf export TSLIB_CALIBFILE=$T_ROOT/pointercal
export QTEDIR=/opt/qtearm
export QT_QWS_FONTDIR=$QTEDIR/lib/fonts export QWS_MOUSE_PROTO=Tslib:/dev/input/event0 export QWS_KEYBOARD=none export LD_LIBRARY_PATH=$T_ROOT/lib:$QTEDIR/lib:$LD_LIBRARY_PATH
運(yùn)行程序即可。
有圖有真相。(手機(jī)拍的)
聲明:Freedomxura原創(chuàng),歡迎轉(zhuǎn)載,請注明出處,http://xurafreedom.cublog.cn |