淺析QT 4 移植
對于QT 4 移植,本篇文章介紹QT4移植到了mini2440的開發(fā)板上。在操作之前,首先要弄清楚一些概念:
1.什么是Qt
Qt 是一個(gè)跨平臺應(yīng)用程序框架。通過使用 Qt,您可以一次性開發(fā)應(yīng)用程序和用戶界面,然后將其部署到多個(gè)桌面和嵌入式操作系統(tǒng),而無需重復(fù)編寫源代碼。Qt 軟件前身為 Trolltech (奇趣科技),2008年6月被諾基亞收購。
2.Qt的版本和分類
Qt 的版本是按照不同的圖形系統(tǒng)來劃分的,目前分為四個(gè)版本:
Win32版,適用于Windows平臺;
X11版,適合于使用了x系統(tǒng)的各種 linux 和 unix的平臺;
Mac版,適合與蘋果MacOS;
embedded版,適合于具有幀緩沖(frame buffer)的linux 的平臺
3.Qtopia和Qt的關(guān)系
Qt Palmtop Environment,是構(gòu)建于Qt/E之上一個(gè)類似桌面系統(tǒng)的應(yīng)用環(huán)境,包括了PDA和手機(jī)等掌上系統(tǒng)常見的功能如電話簿、日程表等。
Qtopai后來改名為Qt Extended,2009年3月3日,Nokia決定停止Qt Extended的后續(xù)開發(fā),轉(zhuǎn)而全心投入Qt的產(chǎn)品開發(fā),并逐步會將一部分QtExtended的功能移植到Qt開發(fā)框架中。
qt-4.5.3的編譯與移植:
在PC的linux系統(tǒng)中開發(fā)qt程序,完全可以下載完整的SDK, Qt SDK for Linux/X11 32-bit** (370 Mb),包含QT庫,Qt Creator和qt的其他開發(fā)工具。下載后直接安裝即可。
所以,主要的工作是編譯在ARM板上運(yùn)行的qt庫:下載qt-embedded-linux-opensource-src-4.5.3.tar.gz,tslib-1.4.tar.gz
1.首先編譯安裝觸摸屏驅(qū)動庫tslib-1.4
- view sourceprint?1
- ./autogen.sh
- ./configure --prefix=/usr/local/qte-arm/tslib-1.4 --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
- make
- sudo make install
這樣就可以在/usr/local/qte-arm/tslib-1.4目錄下看到相關(guān)的應(yīng)用程序、共享庫、配置文件等,這些庫和配置文件都是要拷到ARM板的根文件系統(tǒng)中的。
2.編譯qt-embedded-linux-opensource-src-4.5.3
- view sourceprint?01 ./configure -prefix /usr/local/qte-arm \
- -no-qt3support \
- -qt-zlib \
- -qt-libtiff \
- -qt-libpng \
- -qt-libmng \
- -qt-libjpeg \
- -make libs \
- -nomake examples \(不編譯例子程序和文檔)
- -nomake demos \
- -nomake docs \
- -no-nis \
- -no-cups \
- -no-iconv \
- -xplatform qws/linux-arm-g++ \
- -embedded arm \
- -little-endian \
- -qt-freetype \
- -depths 8,16,24,32 \
- -qt-gfx-linuxfb \
- -no-gfx-transformed \
- -no-gfx-qvfb \
- -no-gfx-vnc \
- -no-gfx-multiscreen \
- -qt-kbd-usb \
- -qt-kbd-tty \
- -qt-mouse-pc \
- -no-glib \
- -qt-mouse-tslib -I/usr/local/qte-arm/tslib/build/include -L/usr/local/qte-arm/tslib/build/lib
編譯選項(xiàng)-qt-mouse-tslib需要用到觸摸屏功能的動態(tài)庫,所以得把之前編譯安裝的tslib庫包含進(jìn)來。
- make
- make install
這樣qt/E的編譯工作完成,主要是得到了qt程序在arm板上運(yùn)行所需要的庫文件,以及用于arm平臺的qmake,moc,uic等工具。
3.拷貝相關(guān)文件到ARM根文件系統(tǒng)
拷貝/usr/local/qte-arm/tslib整個(gè)目錄到arm板根文件系統(tǒng)root_nfs/下;
拷貝/usr/local/qte-arm/lib/下所有庫文件到root_nfs/opt/qt/lib目錄下,你可能不需要全部的庫文件,可根據(jù)需要選擇;
4.設(shè)置環(huán)境變量和配置文件
首先設(shè)置tslib的配置文件 gedit root_nfs/tslib/build/etc/ts.conf
- view sourceprint?1 module_raw input
- module pthres pmin=1
- module variance delta=30
- module dejitter delta=100
- module linear
然后設(shè)置qt及tslib的環(huán)境變量: gedit root_nfs/etc/profile
在最后加入:
- view sourceprint?01 export QTDIR=/opt/qt
- export T_ROOT=/tslib/build
- export PATH=$T_ROOT/bin:$PATH
- export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/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=/etc/pointercal
- export QWS_KEYBOARD=USB:/dev/input/event1
- export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
- export QWS_DISPLAY=LinuxFb:mmWidth45:mmHeight60:0
- export QWS_SIZE=240x320
重啟開發(fā)板,移植完成!注意,在開發(fā)板上運(yùn)行qt程序要加-qws 選項(xiàng),從而讓程序以Server模式運(yùn)行。
【編輯推薦】