把桌面qt代碼編譯運行到qpe上的一個例子

qt-x11版本是2.3.2
qt core版本是2.3.2
qtopia版本是2.2.x
qt-x11版本安裝目錄下的tutorial目錄下有一些例子。我把其中的t7目錄下的程序(這是一個lcd數值聯動調整的簡單例子)編譯到qpe上運行。
前提是qtopia的x86版已經裝好,並且配置好shell的環境變量QTDIR(qt桌面版的安裝目錄,可能用到此目錄下的qmake,qt designer等工具),QPEDIR(qtopia的安裝目錄),QTEDIR(QT/E核心庫在安裝後的根目錄),LD_LIBRARY_PATH(以上三個目錄下的庫文件所在目錄,一般在這些目錄的lib下),PATH中還要加上moc,uic,qmake等路徑。一個例子如下:
export QPEDIR=/home/dongjiajing/x86-qtopia/qtopia-2.2.0-FriendlyARM/qtopia
export QTOPIA_DEPOT_PATH=/home/dongjiajing/x86-qtopia/qtopia-2.2.0-FriendlyARM/qtopia
export QTDIR=/home/dongjiajing/x86-qtopia/qtopia-2.2.0-FriendlyARM/dqt
export QTEDIR=/home/dongjiajing/x86-qtopia/qtopia-2.2.0-FriendlyARM/qt2
export PATH=$QPEDIR/bin:$QTDIR/bin:$QTEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QPEDIR/lib:$QTDIR/lib:$QTEDIR/lib:$LD_LIBRARY_PATH
然後把qt-x11版本下tutorial/t7下的源文件拷到一個自己創建的新工程目錄,假設這個目錄也叫做t7
#cd t7
#ls
lcdrange.cpp lcdrange.h main.cpp
修改main.cpp文件,把原來的的#include <qapplication.h>改爲#include <qtopia/qpeapplication.h>
#qmake -project
生成了t7.pro
#在t7.pro最後加上如下這句表示生成的執行文件名是t7
TARGET=t7
#qmake -o Makefile -spec /home/dongjiajing/x86-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/mkspecs/qws/linux-generic-g++ t7.pro
表示按照linux-generic-g++目錄下的配置文件描述的方式,由這個t7.pro文件生成對應的Makefile
修改這個Makefile,把LIBS的值改成-lqtopia2 -lqtopia –lqpe,表示只連接這些庫這是qtopia和桌面版qt可執行程序的根本區別。
#make
成功的話在當前目錄生成t7,這就是最終的執行文件。
把這個執行文件t7拷到$QPEDIR/image/opt/Qtopia/bin下(如果要用quicklunch方式運行參看其他資料),然後再在$QPEDIR/image/opt/Qtopia/apps/Application下添加一個桌面配置文件t7.desktop,內容如下:
[Desktop Entry]
Exec=t7 #表示在bin中的執行程序名
Type=Application
Name=name_t7 #在窗口管理中看到的這個desktop文件的名稱
當然這只是最簡單的配置,更復雜的其他配置可以參考其他資料。

如下觀看這個程序在qtopia上的運行效果:
#qvfb -width 240 -height 320 -depth 16 &
#/home/dongjiajing/x86-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/bin/qpe
成功的話會看到qtopia的窗口,在Application欄中左擊name_t7圖標就可以看到lcd數值聯動調整效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章