呀,終於又寫好一篇了!寫了真久,不過,還是要繼續再加東西才行!
這篇是介紹如何把Qt 移植到嵌入式系統上面,雖然以前就有做過Qt 2 版的移植,不過一直沒成功!
Qt 3版以下的移植的步驟分很多,很容易有錯誤,4版之後,就把一些東西整合在一起,就變得容易多了!不過,感覺真沒成就感~囧
嗯Qt Porting 完之後,執行一些Demo程式,看來....Kernel 的螢幕那邊好像編成800 × 600捏.. 看來要把它的kernel重編看看了!
再來,就是加上它的Touch Panel的功能了! 不過,此篇是沿續上一篇,所以,要搭配上一篇才會比較完整一些!
======================================================
Qt Porting to SBC6446 with LEOs for DaVinci pre-loaded
開發工具:qt-embedded-linux-opensource-src-4.4.3.tar.gz
Qt官網網址:http://www.qtsoftware.com
一、Download QT-Embedded 原始檔
Qt-Embedded目前最新的版本為4.4.3
下載點:ftp://ftp.trolltech.no/qt/source/qt-embedded-linux-opensource-src-4.4.3.tar.gz
先建立自己的工作資料夾目錄,我是在自己的家目錄下建立workSpace資料夾:
1.指令$ mkdir -p /home/maxron/workSpace
maxron是我自己的帳號,建不建workSpace並沒有關係。
2.切換至資料夾下:
指令$ cd /home/maxron/workSpace
3.下載Qt-embedded 原始檔
指令$ wget ftp://ftp.trolltech.no/qt/source/qt-embedded-linux-opensource-src-4.4.3.tar.gz
4. 解壓縮原始檔
指令$ tar -zxvf qt-embedded-linux-opensource-src-4.4.3.tar.gz
解壓縮完後,資料夾底下會出現 qt-embedded-linux-opensource-src-4.4.3 的資料夾,切換至此資料夾底下。
指令$ cd qt-embedded-linux-opensource-src-4.4.3/
5.修改qmake.conf 文件檔
修改mkspecs/qws/linux-arm-g++/qmake.conf內的編譯器設定,將其設為目前所使用的tool chain。找出下列這幾行文字,修改成如下。
利用文字編輯器修改
指令$ nano mkspecs/qws/linux-arm-g++/qmake.conf
QMAKE_CC =
arm-unknown-linux-gnueabi--gcc
QMAKE_CXX =
arm-unknown-linux-gnueabi--g++
QMAKE_LINK =
arm-unknown-linux-gnueabi--g++
QMAKE_LINK_SHLIB =
arm-unknown-linux-gnueabi-g++
QMAKE_AR =
arm-unknown-linux-gnueabi- -ar cqs
QMAKE_OBJCOPY =
arm-unknown-linux-gnueabi-objcopy
QMAKE_RANLIB
=arm-unknown-linux-gnueabi -ranlib。
QMAKE_STRIP
=arm-unknown-linux-gnueabi- strip
修改完畢後,以按鍵“Ctr”l + “o”存檔,以“Ctrl” + “x”離開。
6. 組態與編譯
編譯參數組態,可使自己的需求進行組態。
1.指令$ ./configure -embedded arm -qt-zlib -qt-libpng -qt-gif -qt-libtiff -qt-libmng -qt-libjpeg -qt-freetype -no-openssl
這個部分會跑蠻久的,要等一段時間,等組態完成之後,就可利用make指令進行編譯,在make之前,可以試著先切換到root模式再進行編譯動作。會減少一些錯誤的產生。
變更為root:
2.指令$ su root 之後再輸入密碼即可。
3.指令$ make
make的時間很久,有可能要30分到幾個小時之間。等make完畢後,再利用make install 指令進行安裝動作。
4.指令$
make install
make install 指令會將編譯過的Qt 檔案安裝至本機端的/usr/local/資料夾下,並會出現Trolltech/QtEmbedded-4.4.3-arm/ 資料夾目錄。
5. 移植測試
將嵌入式開發板與本機連接,並利用NFS 掛載根檔案系統,請參考上一篇。
掛載目錄為/data/target/。
將剛剛安裝好的資料夾,複製至/data/target/usr/local/底下。
指令$ cp -a /usr/local/Trolltech /data/target/usr/local/
再完成資料搬移後,執行測試的程式,似乎會出現Error,錯誤訊息中顯示缺少 librt.so.1 的檔案,利用find執行搜尋本機根目錄,便可發現此檔案位置:
/opt/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/lib/librt.so.1
但是librt.so.1 是連結至librt-2.4.so,因此,還需要此檔案,位置於:
/opt/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/lib/librt-2.4.so
將此二個檔案複製至/data/target/usr/local/Trolltech/Qtembedded-4.4.3-arm/lib 底下。
指令:cp -a /opt/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/lib/librt.so.1 /data/target/usr/local/Trolltech/QtEmbedded-4.4.3-arm/lib
指令:cp -a /opt/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/lib/librt-2.4.so /data/target/usr/local/Trolltech/QtEmbedded-4.4.3-arm/lib
搬移完成後,在minicom 的命令列視窗,設定開發版的環境變數
以下指令皆在minicom 中輸入!
In minicom:
指令
$ export
QTDIR=/usr/local/Trolltech/QtEmbedded-4.4.3-arm
$ export
PATH=$QTDIR/bin:$PATH
$ export
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
設定完成後,便可測試所附的範例程式。切換至測試程式資料夾下。
指令$ cd /usr/local/Trolltech/QtEmbedded-4.4.3-arm/demos
此資料夾目錄下有許多的demo程式可測試,選便挑選測試:
指令$ ./mainwindow/mainwindow -qws
開發板上螢幕面板將會出現Qt的視窗程式。
註:在執行任何的範例程式後面需加 -qws方可執行。