|
摘要:飛凌ok6410開發板上移植Qt4.7.0 內容:
主機環境為ubuntu10.04,交叉工具鏈為飛凌自帶的 這次移植就直接切入主題,不考慮x11版本qvfb的提供和x86版本的Qt4.7.0 for embedde。
1.編譯tslib,tslib的下載地址已經改變了,現在為http://github.com/kergoth/tslib/downloads,不過已經很久沒更新了,解壓到自定義目錄,然后執行以下步驟:
#./autogen.sh
#./configure –prefix=/home/cnnbboy/mytslib/ –host=arm-linux ac_cv_func_malloc_0_nonnull=yes
#make
#make install
一般來說,會順利安裝完畢,安裝完畢后,就直接編譯Qt4.7.0
2.編譯Qt4.7.0,解包從qt.nokia.com下載的源碼,然進入源碼目錄,進行編譯安裝,進行如下操作:
#./configure ”
-release ”
-shared ”
-fast ”
-no-largefile ”
-qt-sql-sqlite ”
-no-qt3support ”
-no-xmlpatterns ”
-no-mmx ”
-no-3dnow ”
-no-sse ”
-no-sse2 ”
-no-svg ”
-no-webkit ”
-qt-zlib ”
-qt-gif ”
-qt-libtiff ”
-qt-libpng ”
-qt-libmng ”
-qt-libjpeg ”
-make libs ”
-nomake tools ”
-nomake examples ”
-nomake docs ”
-nomake demo ”
-no-nis ”
-no-cups ”
-no-iconv ”
-no-dbus ”
-no-openssl ”
-xplatform qws/linux-arm-g++ ”
-embedded arm ”
-little-endian ”
-qt-freetype ”
-depths 16,18 ”
-qt-gfx-linuxfb ”
-no-gfx-transformed ”
-no-gfx-multiscreen ”
-no-gfx-vnc ”
-no-gfx-qvfb ”
-qt-kbd-usb ”
-no-glib ”
-qt-mouse-tslib -I/home/cnnbboy/mytslib/include -L/home/cnnbboy/mytslib/lib
這些參數是我移植Qt4.5.1時代就可開始用的參數,當然,隨著經驗的增加,參數也越來越熟悉,目前我使用這些參數配置,一般可以在兩個小時內完成編譯。
編譯完成后,安裝
#sudo make install 就會安裝入默認的路徑/usr/local/Trolltech/QtEmbedded-4.7.0-arm
說個題外話,雖然trolltech已經被nokia收購多年了,但是安裝路徑里還保留著trolltech這個名字,奇趣,還有多少人能記著這個締造Qt的公司呢。
3.移植,也就是把編譯完畢的庫文件想辦法復制到開發板上,前面已經談到過在ok6410上NFS啟動,所以將庫到文件系統下即可,執行步驟如下; #mkdir /forlinx/root/usr/local/Trolltech/QtEmbedded-4.7.0-arm 將Qt4.7.0的庫文件拷貝至該目錄
#cp -r /usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib /forlinx/root/usr/local/Trolltech/QtEmbedded-4.7.0-arm
#mkdir /forlinx/root/usr/local/tslib-arm 將tslib的庫和插件拷貝至該目錄
#cp /home/cnnbboy/mytslib/* /forlinx/root/usr/local/tslib-arm
這些準備ok后,就是設置環境變量了,如下:
export QTDIR=/usr/local/Trolltech/QtEmbedded-arm
export T_ROOT=/usr/local/tslib-arm
export PATH=$QTDIR/bin:$PATH
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=tslib:/dev/input/event0
export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib 這些就是根據自己放庫文件來設置的,這時選取一個example編譯就可以在班子上跑起來。
注意點:
1.跑自己移植的Qt之前,需要把原來板子配置的qtopia去掉,直接編譯/etc/init.d/rcS,將最后一行啟動qtopia的語句注釋掉即可;
2.需要注意的是TSLIB_TSDEVICE=/dev/input/event1,而不是TSLIB_TSDEVICE=/dev/input/event0,這個是跟板子觸摸設置有關;
后記:對于我來說,板子還是學習用的,在未來的計劃里,將逐步拋棄原來的工具,重新移植內核,文件系統,制作交叉工具鏈等,培養自己完整的一套開發體系。 |
|