詳解Qtopia 2.2.0 配置和交叉編譯
Qtopia 2.2.0 配置和交叉編譯是本文要介紹的內(nèi)容,不多說(shuō)我們直接看內(nèi)容。我們提供的 qtopia-2.2.0 源碼包位于 linux\ linux-source\ qtopia-2.2.0-Real6410.tar.bz2, 解壓這個(gè)源碼包到 Ubuntu 的主目錄下,得到 qtopia-2.2.0-Real6410,進(jìn)入
- qtopia-2.2.0-Real6410
目錄運(yùn)行以下配置:
- echo yes | ./configure -qte '-embedded -no-xft -qconfig qpe -depths 16,32
- -system-jpeg -qt-zlib -qt-libpng -gif -no-g++-exceptions -no-qvfb -xplatform
- linux-arm-g++ -tslib' -qpe 'edition pda -displaysize 480x272 -fontfamilies
- "helvetica fixed micro smallsmooth smoothtimes unifont" -xplatform linux-arm-g++
- -luuid' -qt2 '-no-opengl -no-xft' -dqt '-no-xft -thread'
這樣便完成了對(duì) qtopia 的配置,這里可以根據(jù)實(shí)際使用的 LCD 尺寸修改 displaysize 這個(gè)參數(shù)。接下來(lái)輸入
- make
- make install
便可以完成對(duì) qtopa 的編譯和安裝,安裝結(jié)果就在 qtopia-2.2.0-Real6410/qtopia/image/opt/Qtopia
下面,為了簡(jiǎn)化這個(gè)過(guò)程,我們提供了一個(gè)腳本 build 完成上面的幾個(gè)步驟,在該目錄下運(yùn)行./build 即可。
注意:有些用戶反映在 Ubuntu-9.10 下編譯 qtopia-2.2.0 失敗,我也相應(yīng)地做了一下試驗(yàn),的確有這個(gè)問(wèn)題出現(xiàn),這是由于主機(jī)環(huán)境 Ubuntu 中有相當(dāng)多的庫(kù)函數(shù)沒(méi)有預(yù)裝,我在編譯 qtopia-2.20 的時(shí)候使用的是 Redhat AS4 的完全安裝版,因此編譯過(guò)程沒(méi)有出現(xiàn)問(wèn)題。建議要進(jìn)行 qtopia-2.2.0 編譯的***切換到 Redhat AS4 中進(jìn)行。而在 Ubuntu 中編譯 QT4 是沒(méi)有問(wèn)題的。
Qtopia-2.2.0 在開(kāi)發(fā)板上的運(yùn)行
上一步得到了 qtopia-2.2.0-Real6410/qtopia/image/opt/Qtopia/opt 這個(gè)結(jié)果,這里面實(shí)際上包含了所有的應(yīng)用程序。接著就要把這些代碼放到板子的根文件系統(tǒng)中,這里不建議初學(xué)的讀者從零開(kāi)始建立一個(gè)根文件系統(tǒng),而直接使用我們?cè)诠獗P(pán)中提供的
- linux\linux-source\qtopia.tar.gz
在 Ubuntu 主目錄下新建一個(gè)目錄 rootfs_qtopia,并把上面的源碼包解壓這個(gè)目錄,這樣講看到這個(gè)目錄下有一個(gè) opt 目錄,這實(shí)際上就是編譯 qtopia 后得到的 opt 目錄,因此,直接把 qtopia 編譯得到的 qtopia-2.2.0-Real6410/qtopia/image/opt 整體復(fù)制到 rootfs_qtopia 目錄下代替原來(lái)的 opt 目錄,這樣自己的 qtopia 就算安裝好了。
接著就要設(shè)置好 Qtopia 的運(yùn)行環(huán)境變量,環(huán)境變量的設(shè)置如下:
- export TSLIB_TSDEVICE=/dev/input/event1
- export TSLIB_CONFFILE=/usr/local/etc/ts.conf
- export TSLIB_PLUGINDIR=/usr/local/lib/ts
- export TSLIB_CALIBFILE=/etc/pointercal
- export QTDIR=/opt/Qtopia
- export QPEDIR=/opt/Qtopia
- export PATH=$QTDIR/bin:$PATH
- export LD_LIBRARY_PATH=$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH
- export QWS_MOUSE_PROTO="TPanel:/dev/input/event1"
- # USB:/dev/input/mice"
- export QWS_KEYBOARD=TTY:/dev/tty1
- export KDEDIR=/opt/kde
- export HOME=/root
- exec $QPEDIR/bin/qpe
我們已經(jīng)在板子的根文件系統(tǒng)的/bin/下提供了一個(gè)名為 qtopia 的可執(zhí)行腳本來(lái)設(shè)置上面的參數(shù),并啟動(dòng) qtopia。默認(rèn)下這個(gè)腳本會(huì)在初始化的時(shí)候被執(zhí)行,用戶也可以通過(guò)運(yùn)行qtopia 這個(gè)命令來(lái)執(zhí)行這個(gè)腳本。
Qtopia-2.2.0 ARM程序的開(kāi)發(fā)
1。配置環(huán)境變量:source set-arm-env
- export QPEDIR=/usr/qtopia-2.2.0-Real6410/qtopia
- export QTDIR=/usr/qtopia-2.2.0-Real6410/qt2
- export TMAKEDIR=/usr/qtopia-2.2.0-Real6410/tmake
- export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
- export LIBDIR=/usr/qtopia-2.2.0-Real6410/qtopia/image/opt/Qtopia/lib
- export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH
- export LD_LIBRARY_PATH=/usr/qtopia-2.2.0-Real6410/qtopia/image/opt/Qtopia/lib:$LD_LIBRARY_PATH
2。新建程序hello.cpp,編寫(xiě)程序
3。progen -t app.t -o hello.pro
4. tmake -o Makefile hello.pro
5. 修改Makefile
LIBS = $(SUBLIBS) -L$(LIBDIR) -lm -lqte -lstdc++
6. make
7. 新建hello.desktop, 并添加執(zhí)行權(quán)限chmod +x hello.desktop
- [Desktop Entry]
- Comment[]=A Hello Program
- Exec=hello
- Icon=Hello
- Type=Application
- Name[]=Hello
8. 復(fù)制hello.desktop到開(kāi)發(fā)板Qtopia安裝目錄的apps/Applications目錄下,復(fù)制hello到開(kāi)發(fā)板Qtopia安裝目錄的bin下,重啟開(kāi)發(fā)板即可運(yùn)行程序。
小結(jié):關(guān)于詳解Qtopia 2.2.0 配置和交叉編譯的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!