QT/E和Qtopia的編譯詳解
現(xiàn)在我們開(kāi)始交叉編譯qpe吧,不過(guò)要做好心理準(zhǔn)備,因?yàn)檎麄€(gè)過(guò)程將會(huì)遇到各種各樣的問(wèn)題, 失敗是很平常的,關(guān)鍵是我們要挺過(guò)來(lái),堅(jiān)持和摸索是我們每一個(gè)計(jì)算機(jī)工作者的法寶,讓我們開(kāi)始吧,和PC上不同的地方我會(huì)用紅色顯示出來(lái)!
首先我們要準(zhǔn)備編譯資料,商家提供以下編譯資料:
tmake-1.11.tar.gz ,qt-embede-2.3.7.tar.gz , qt-x11-2.3.2.tar.gz,qt-free-1.7.tar.gz,這些對(duì)編譯PC上的QT/E的qpe足夠了,不過(guò)在交叉編譯qpe的時(shí)候,還差兩份資料:e2fsprogs.1.35.tar.gz,jpegsrc.v6b.tar.gz,所以必須去網(wǎng)站上下載,也可以向別人索要。
同樣我在/yehuo2410/下建立目錄qt_arm作為交叉編譯目錄
好!我們開(kāi)始分析腳本:
#cd /yehuo2410/qt_arm (拷貝上述所有壓縮包到該目錄包括e2fsprogs-1.35.tar.gz和jpegsrc.v6b.tar.gz兩個(gè)壓縮包)
當(dāng)前目錄為/yehuo2410/qt_arm
#tar xzvf +各個(gè)壓縮包,解壓到/yehuo2410/qt_arm,記得要解壓e2...和jpegsrc....兩個(gè)包哦
#mv tmake-11 tmake
#mv qt-2.3.7.tar.gz qt
#mv qt-2.3.2.tar.gz qt-x11
#mv qt-free-1.7.tar.gz qtopia本文引用地址:http://www.ex-cimer.com/article/150747.htm
#cd qt-x11 轉(zhuǎn)到這個(gè)目錄開(kāi)始編譯相應(yīng)的工具
#export QTDIR=$PWD 配置當(dāng)前QTDIR
#echo yes | ./configure -static -ro-xft -no-opengl -no-sm 形成Makefile文件
#make -C src/moc 編譯形成moc(元對(duì)象編譯器)工具
#cp src/moc/moc bin 拷貝上一步生成的moc到當(dāng)前目錄的bin
#make -C src 這一步是必須的
以下兩步形成設(shè)計(jì)器designer和虛擬幀緩沖器qvfb
#make -C tools/designer
這時(shí)候designer工具不會(huì)在tools/designer下形成,而是在當(dāng)前目錄(qt-x11的bin目錄)下形成,故不用拷貝,你會(huì)發(fā)現(xiàn)qt-x11/bin下多了uic,和designer工具,uic首先形成,因?yàn)閐esigner在編譯是要用到uic工具,uic工具是qt中用來(lái)處理.ui文件的工具。
#make -C tools/qvfb
#cp tools/qvfb bin
#strip bin/uic bin/moc bin/designer bin/qvfb 是對(duì)各個(gè)工具可執(zhí)行文件進(jìn)行節(jié)優(yōu)化
#cp /bin/* ../qt/bin 拷貝這些工具到 qt-x11的兄弟目錄qt中的bin目錄中,qt/bin中有三個(gè)文件:findtr,
qt20fix,qtrename140,而qt-x11/bin中也有,拷貝的時(shí)候系統(tǒng)問(wèn)題是否覆蓋(qt-x11/bin里的這三個(gè)文件是否覆蓋qt/bin里的這三個(gè)文件?),我選擇是。
# cd ..
下面開(kāi)始配置環(huán)境變量,很多腳本都這樣寫(xiě)
#export QTDIR=$PWD/qt
#export QTEDIR=$QTDIR
#export QPEDIR=$PWD/qtopia
#export TMAKEDIR=$PWD/tmake
#export TMAKEPATH=$TMAKEDIR/llib/qws/linux-arm-g++(常規(guī)g++編譯器)這點(diǎn)就和PC上的不同了,qws目錄中有很多包括手機(jī),PDA和ARM之類(lèi)的g++編譯器。
#export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH
#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH 配置了這里就不用配置
/etc./ld.so.conf文件了,同樣,為了保險(xiǎn),我把上述信息寫(xiě)到了/etc/profile文件中并且在/etc/profile中的$PWD替換為/yehuo2410/qt_arm,我們不用擔(dān)心以前編譯的PC版本的qpe會(huì)受到影響,當(dāng)我們真正要用到PC版本的qpe的時(shí)把/etc/profile里面的這一部分涉及的/yehuo2410/qt_arm字符修改成/yehuo2410/qt_x86字符就可以了,當(dāng)然,設(shè)置完成以后注銷(xiāo)系統(tǒng)以生效。
#cd ..
#cd qt
#make clean
再次強(qiáng)調(diào)以下步驟是必要的,否則會(huì)出現(xiàn)cannot fine -lqte問(wèn)題
#cp $QPEDIR/src/qt/qconfig-qpe.h src/tools
在下一步中我發(fā)現(xiàn)編譯PC上的qpe時(shí)做到這一步時(shí),會(huì)問(wèn)你兩次(都回答yes),而這里只會(huì)問(wèn)一次,當(dāng)時(shí)我感到費(fèi)解,因?yàn)楹蛷S家提供的腳本不一樣(廠商提供的腳本是echo yes;echo no) ,我擔(dān)心是哪里出錯(cuò)了,但是我依然往下做,直到最后也沒(méi)有出現(xiàn)這里的相關(guān)問(wèn)題,所以就不用擔(dān)心
#echo yes|./configure -platform linux-arm-g++ -qconfig qpe -qvfb -depths 16,24,32
#make -C src
評(píng)論