最具體的QT4移植ARM9開(kāi)發(fā)板方法_第1頁(yè)
最具體的QT4移植ARM9開(kāi)發(fā)板方法_第2頁(yè)
最具體的QT4移植ARM9開(kāi)發(fā)板方法_第3頁(yè)
最具體的QT4移植ARM9開(kāi)發(fā)板方法_第4頁(yè)
最具體的QT4移植ARM9開(kāi)發(fā)板方法_第5頁(yè)
已閱讀5頁(yè),還剩57頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、QT4移植到ARM9開(kāi)發(fā)板1 編譯qte從 HYPERLINK 下載源代碼,選擇開(kāi)源版本(非商業(yè)版本),選擇Qt libraries 4.5 for embedded linux(128M)在源代碼目錄下下執(zhí)行:./confiigure embeedded arm -xplattform qws/llinux-arm-gg+ -no-qtt3suppport -qt-moouse-llinuxttp 在redhatt9.0環(huán)境境需要作一些些修改才能編編譯通過(guò):ln -s /usr/kkerberros/inncludee/com_err.hh /usrr/incllude/ln -s /usr

2、/kkerberros/inncludee/proffile.hh /usrr/incllude/ln -s /usr/kkerberros/inncludee/krb55.h /uusr/inncludee/vi src/gui/ttext/qqfonteenginee_ft.ccpp, 注釋掉7100行make (時(shí)時(shí)間4個(gè)小時(shí)時(shí)左右)make innstalll2編譯busyybox1.13.44從 HYPERLINK /downloads/ http:/www.busybbox.neet/dowwnloadds/下載bbusyboox工具。修改Makeffile CROSSS_COMP

3、PILE=aarm-liinux-Make meenuconnfig選擇擇動(dòng)態(tài)編譯,默默認(rèn)配置保存存即可如果在Redhhat2.44虛擬機(jī)上編編譯,需需修修改netwworkinng/intterfacce.c添加宏定義#ddefinee ARPHHRD_INNFINIBBAND 3325. makke alll insttall(使使用3.4.1編譯器)3建立配置文件件進(jìn)入_insttall目錄錄mkdir ddev liib tmpp procccd dev mknod ffb0 c 29 0 建立frramebuuffer設(shè)設(shè)備文件mknod tts0 133 128 建立觸摸摸屏設(shè)備文

4、件件mknod cconsolle c 55 1mknod ttty0 cc 4 0mknod ttty1 cc 4 1mknod ttty2 cc 4 2 mknod ttty3 cc 4 3mknod ttty4 cc 4 4cd libcp arff 3.4.1/arm-llinux/lib/* .cp arff qt-eembeddded-liinux-oopensoource-src-44.5.1/lib/* .應(yīng)用測(cè)試程序拷拷貝到開(kāi)發(fā)板板根目錄cp qt-eembeddded-liinux-oopensoource-src-44.5.1/demoss/defoorm/deeform

5、 .注:命令中引用用的路徑為相相對(duì)路徑4運(yùn)行QTE測(cè)測(cè)試程序兩種方式可以用mkcrramfs將將busybbox的_iinstalll目錄做成成文件系統(tǒng)鏡鏡像,然后下下載可以用NFS掛掛載./deforrm qws 屏屏幕看結(jié)果我發(fā)現(xiàn)做出來(lái)的的東西然后寫寫下來(lái)一起分分享是很快樂(lè)樂(lè)的事,哈哈哈,越寫越上上癮了,但畢畢竟精力有限限,干的也比比較少,時(shí)間間總感覺(jué)不夠夠用。所以干干點(diǎn)寫點(diǎn),還還是老話大部部分來(lái)自網(wǎng)上上,里面我就就多羅嗦兩句句。好了不多多說(shuō)了,接著著上次觸摸屏屏驅(qū)動(dòng)移植開(kāi)開(kāi)始寫,上次次我們把觸摸摸屏給移植了了,怎么能用用實(shí)踐來(lái)檢驗(yàn)驗(yàn)?zāi)?,?lái)看看看我的QT44程序是否能能通過(guò)觸摸屏屏就可以控

6、制制呢,就這個(gè)個(gè)問(wèn)題我做了了一些工作。老老樣子介紹系系統(tǒng):1.主主機(jī)系統(tǒng):uubuntuu 8.100 交叉編譯譯器3.4.5 u-bboot-11.3.4 linuxx-22.目標(biāo)系統(tǒng)統(tǒng):s3c224103.首先要讓觸觸摸屏很好的的工作就先去去做校準(zhǔn)的工工作,這里我我們用tsllib-1.4,具體的的移植過(guò)程如如下:(1)得到源碼包包tslibb-1.4.tar.ggz,上網(wǎng)一一搜索就很多多,具體就不不說(shuō)了。(22)$cd tslibb$expoort PRREFIX=/homee/yoyooili/ttslib(這個(gè)就是ttslib編編譯以后的安安裝目錄)$exporrt

7、CC=arm-ssoftflloat-llinux-gnu-ggcc$./autoggen.shh$echoo ac_cv_fuunc_maalloc_0_nonnnull=yes arm-linuxx.cachhe$./cconfiggure -hostt=arm-linuxx -prrefix=$PREFFIX -cachee-filee=arm-linuxx.cachhe$makke $maake innstalll這樣在/hhome/yyoyoilli/tsllib下面就就是我們交叉叉編譯tsllib以后產(chǎn)產(chǎn)生的必要的的文件,主要要是頭文件和和庫(kù)文件,在在移植QT44的時(shí)候需要要這些文

8、件。(3)在開(kāi)發(fā)板的/home/yoyoili創(chuàng)建tslib目錄,將編譯好的tslib目錄下的lib,etc,bin目錄拷貝到這個(gè)目錄,然后編輯etc/ts.conf,具體內(nèi)容如下,其他的內(nèi)容全部刪除:我的如下:module_raw inputmodule pthres pmin=1module variance delta=30module dejitter delta=100module linear注意module_raw前不要有空格!(4)接下來(lái)就是測(cè)試觸摸屏和tslib是否好用了,首先設(shè)置環(huán)境變量,在開(kāi)發(fā)板上設(shè)置:$export TSLIB_ROOT=/home/yoyoili/ts

9、lib$export TSLIB_TSDEVICE=/dev/event0$export LD_LIBRARY_PATH=/home/yoyoili/tslib/lib:$LD_LIBRARY_PATH$export QWS_SIZE=320 x240$export TSLIB_FBDEVICE=/dev/fb0$export TSLIB_PLUGINDIR=/home/yoyoili/tslib/lib/ts$export TSLIB_CONSOLEDEVICE=none$export TSLIB_CONFFILE=/home/yoyoili/tslib/etc/ts.conf$export

10、 POINTERCAL_FILE=/etc/pointercal$export QWS_MOUSE_PROTO=Tslib:/dev/event0$export TSLIB_CALIBFILE=/etc/pointercal這里強(qiáng)烈建議大家寫一個(gè)腳本來(lái)執(zhí)行,否則我們寶貴的時(shí)間就浪費(fèi)在這上面了!(5)$cd /home/yoyoili/tslib/bin運(yùn)行:./ts_calibrate,然后在/etc就有個(gè)pointercal文件了。這個(gè)就是校準(zhǔn)后產(chǎn)生的文件,以后我們的QT程序通過(guò)觸摸屏來(lái)控制必須有它的。(6)接下來(lái)我們就開(kāi)始移植我們QT4了,這個(gè)我們還是基于以前寫的那個(gè)QT4移植文檔,具體可

11、以看我以前的日志,源碼包還是qt-4.4.3的,重新解壓然后,如果你的交叉編譯器是arm-softfloat-linux-gnu-gcc,請(qǐng)修改源代碼的mkspec/qws/linux-arm-g+/qmake.conf。然后修改mkspec/qws/linux-arm-g+/qmake.conf對(duì)QMAKE_INCDIR和QMAKE_LIBDIR進(jìn)行賦值,具體如下:QMAKE_INCDIR =/home/yoyoili/tslib/includeQMAKE_LIBDIR =/home/yoyoili/tslib/lib也就是指定了交叉編譯好的tslib的頭文件和庫(kù)的路徑而已,然后就開(kāi)始配置.

12、/configure -prefix /home/yoyoili/source/qt/build -release -shared -fast -pch -no-qt3support -qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor

13、-no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama -no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g+ -embedded arm -depths 16 -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb -qt-kbd-usb -confirm-license -no-armfpa -no-feature-QWS_CURSOR -qt-mouse-tslib make如

14、果出現(xiàn)錯(cuò)誤,可以重新關(guān)掉終端,然后重新解壓QT4包,再配置和編譯一下。make install這樣我們的/home/yoyoili/source/qt/build就有了我們的QT4的東西了,主要是庫(kù)文件,在開(kāi)發(fā)板上創(chuàng)建/home/yoyoili/source/qt/build/lib,fonts目錄,拷貝相應(yīng)的庫(kù)文件到開(kāi)發(fā)板的/home/yoyoili/source/qt/build/lib目錄下。libQtCore.so,libQtGui.so.4,libQtNetwork.so.4。向開(kāi)發(fā)板的/home/yoyoili/source/qt/build/fonts/拷貝unifont_160

15、_50.qpf,wenquanyi_120_50.qpf這些字體。這些字體是在編譯好的qt的/home/yoyoili/source/qt/build/lib/fonts目錄下面,然后拷貝開(kāi)發(fā)板的/home/yoyoili/source/qt/build/fonts/下即可。編寫一個(gè)設(shè)置環(huán)境變量的腳本:#!/bin/shexport TSLIB_ROOT=/home/yoyoili/tslibexport TSLIB_TSDEVICE=/dev/event0export LD_LIBRARY_PATH=/home/yoyoili/tslib/lib:/home/yoyoili/source/q

16、t/build/lib:$LD_LIBRARY_PATHexport QWS_SIZE=320 x240export QTDIR=/home/yoyoili/source/qt/buildexport TSLIB_FBDEVICE=/dev/fb0export TSLIB_PLUGINDIR=/home/yoyoili/tslib/lib/tsexport TSLIB_CONSOLEDEVICE=noneexport QT_QWS_FONTDIR=/home/yoyoili/source/qt/build/fontsexport TSLIB_CONFFILE=/home/yoyoili/tsl

17、ib/etc/ts.confexport POINTERCAL_FILE=/etc/pointercalexport QWS_MOUSE_PROTO=Tslib:/dev/event0export TSLIB_CALIBFILE=/etc/pointercal -f /etc/pointercal | /home/yoyoili/tslib/bin/ts_calibrate /判斷是否有校準(zhǔn)文件,如果沒(méi)有,要校準(zhǔn),如果有不用校準(zhǔn)!./demo -qws &最近一直在試驗(yàn)驗(yàn)如何把自己己編譯的 qqt4 / qtopiia4 應(yīng)用用程序 移植植 到 ARRM開(kāi)發(fā)板上上去,今天(2008年11月14

18、日星期五)終于把這條路子走通了,感覺(jué)一下子輕松了很多,可以舒一口氣了,值得慶祝!以后的事雖很多,但總算心里有點(diǎn)底了,后面的任務(wù)應(yīng)該是如何完善自己開(kāi)發(fā)的系統(tǒng)程序,添加必要的功能。如何在arm開(kāi)開(kāi)發(fā)板中移植植自己開(kāi)發(fā)的的qt4應(yīng)用程程序,我以自自己編寫的wwwjweddm程序?yàn)槔?、設(shè)置好主機(jī)機(jī)開(kāi)發(fā)環(huán)境,qt-x11和qtcore安裝完畢,可以參考有關(guān)文章設(shè)置好環(huán)境2、開(kāi)發(fā)自己的的應(yīng)用程序,可可以參考有關(guān)關(guān)書籍精通通qt4編程qtt c+ GUI編程程3、保證自己的的應(yīng)用程序在在主機(jī)上編譯譯通過(guò),特別別是在QVFFB中使用qtccore的庫(kù)庫(kù)編譯通過(guò);4、開(kāi)始交叉編編譯,首先設(shè)設(shè)置好QT/em

19、beddded ffor arrm的庫(kù)路徑徑,具體如下下:可以根據(jù)據(jù)自己的具體體情況修改,在在ARM板上上嵌入式qtt4的庫(kù)文件件編譯過(guò)程可可以參考另一一篇文章: HYPERLINK / o Qtopia-core-4.3.4在s3c2410上的交叉編譯移植 Qtopia-core-4.3.44在s3c22410上的的交叉編譯移移植 HYPERLINK /article/1454969.html http:/articcle/144549699.htmll在主機(jī)/rooot目錄下面面新建一個(gè)文文件 #geedit qqte_ennv,添加如如下內(nèi)容export QTDIRR=/mntt/nfs

20、/qtcorre434export PATH=$QTDIIR/binn:$PATTHexport LD_LIIBRARYY_PATHH=$QTDDIR/liib:$LDD_LIBRRARY_PPATH需要交叉編譯的的時(shí)候,重新新開(kāi)一個(gè)終端端,在/rooot目錄下下(主機(jī)上為為了方便,我我一直采用rroot用戶戶登陸),先先ls一下,看看文件在不在在,然后#. qte_env /*注注意 . 后面有有一個(gè)空格*/這樣即設(shè)定好了了qte ffor arrm的庫(kù)路徑徑,在此終端端下面,進(jìn)入入要編譯的工工程文件路徑徑下;#cd /mnnt/nfss/qtcoore4344/demooes/wwwjwe

21、dmm#make cclean#qmake projject#qmake#make 如果沒(méi)出出錯(cuò)即可以生生成一個(gè)wwwjwedmm的二進(jìn)制可可執(zhí)行文件#ls 拷貝這個(gè)wwjjwedm到到開(kāi)發(fā)板上去去,不過(guò)我使使用的是qtt4的庫(kù)太大大,不能移植植到開(kāi)發(fā)板,我我使用nfss掛載的方式式,可以參考考其他文章,如如何建立交叉叉編譯環(huán)境。連接好主機(jī)和開(kāi)開(kāi)發(fā)板之間的的串口線和網(wǎng)網(wǎng)線,設(shè)置好好地址,保證證能啟動(dòng)掛載載,所涉及的的一些內(nèi)容和和具體事項(xiàng)可可以訪問(wèn) HYPERLINK /1020791.html htttp:/10207791.httml,參考考相關(guān)文章;啟動(dòng)開(kāi)發(fā)板,進(jìn)進(jìn)入板載系統(tǒng)統(tǒng)中,root

22、uutu-liinux# mounnt -t nfs 1192.1668.1.2200:/mmnt/nffs /mnnt/nfss -o nnolockkrootuutu-liinux# cd /mnt/nnfs/qttcore4434/deemos/wwwjweddmrootuutu-liinux wwjweedm# ./wwjjwedm qws既可以在板子上上啟動(dòng)自己編編譯的wwjjwedm程程序;*注意:qt44用不同的版版本,編譯參參數(shù)不一樣可可能編譯的庫(kù)庫(kù)是不一樣的的,執(zhí)行wwwjwedmm程序時(shí)會(huì)出出現(xiàn)不同大大大小小的錯(cuò)誤誤,在這里我我交叉編譯使使用的qt44的庫(kù)和我要要nfs掛載

23、載的庫(kù)是同一一個(gè)庫(kù)路徑,保保證編譯以及及在arm板板上執(zhí)行文件件是不出現(xiàn)錯(cuò)錯(cuò)誤。mini24440 qt44 移植(轉(zhuǎn)轉(zhuǎn)+自己添加加) HYPERLINK /cgy136652/blog/static/36168728200932410649487/# l # LInux環(huán)境境搭建與設(shè)置置 20099-04-224 10:06 閱讀5441評(píng)論11 字號(hào): HYPERLINK /cgy136652/blog/static/36168728200932410649487/# l # 大 HYPERLINK /cgy136652/blog/static/3616872820093241064948

24、7/# l # 中 HYPERLINK /cgy136652/blog/static/36168728200932410649487/# l # 小 由于mmini24440的光盤盤里自帶一個(gè)個(gè)root_defauult.tggz根文件,因因此省了很大大一部分力氣氣自己去裁剪剪,但是也有有很大的缺陷陷就是:本身身就對(duì)內(nèi)核不不熟悉,現(xiàn)在在跳過(guò)了這一一步,就更加加不理解了。以以后還是要補(bǔ)補(bǔ)上來(lái)。 我做的時(shí)候現(xiàn)在在fc8下試試過(guò),第一次次是配置的時(shí)時(shí)候“The ttslib functtionallity ttest ffailedd!”錯(cuò)誤 但是不明白原因因的,我是按按照下面的配配置來(lái)的還是是出問(wèn)

25、題了。去掉后根據(jù)./confiigure -h 的提提示配置完成成,gmakke到某處時(shí)時(shí),錯(cuò)誤中斷斷。試了幾次次都是這樣也許是我的fcc8并非完全全安裝吧。最最后換到了親親愛(ài)的RH99.0下,按按照下面的指指示編譯成功功。不過(guò)還有有個(gè)現(xiàn)象就是是在fc8下下安裝qt-x11可以以成功,RHH9.0下安安裝qt-xx11就失敗敗了??赡苁鞘荊CC版本本的問(wèn)題了。在在RH9.00下我用的是是tslibb-1.31.編譯tsllib-1.4 (這部部分很好tss-lib的的編譯還算順順利了) 解壓壓到/homme下 #./autoggen.shh #./conffiguree -prrefix=/h

26、omee/duanncp/myytslibb/ -hhost=aarm-liinux aac_cv_func_mallooc_0_nnonnulll=yess (可以先先生成個(gè)caache文件件) #maake #maake innstalll-striip /生生成瘦身應(yīng)用用程序和庫(kù) 2.安裝armm-linuux-gccc-3.4.1.tarr.bz2 在根目目錄下解壓,解解壓后的默認(rèn)認(rèn)目錄在/uusr/loocal/aarm/3.4.1 設(shè)置環(huán)環(huán)境變量,運(yùn)運(yùn)行命令: vi /etc/profiile 加入 exporrt PATTH=/ussr/loccal/arrm/3.44.1/bi

27、in:$PAATH 3.編譯qt-embeddded-llinux-openssourcee-src-4.4.33.tar.gz tar zxff qt-eembeddded-liinux-oopensoource-src-44.4.3.tar.ggzcd qqt-embbeddedd-linuux-opeensourrce-srrc-4.44.3 (我的QT的安安裝目錄設(shè)置置為根目錄下下的/minnin24440) ./confiigure -preffix /mmini24440 -rellease -sharred -ffast -pch -no-qtt3suppport -qt-sqq

28、l-sqllite -no-liibtifff -no-libmnng -qtt-libjjpeg -qt-zllib -qqt-libbpng -qt-frreetyppe -noo-opennssl -nomakke exaampless -nommake ddemos -nomaake toools -optimmized-qmakee -no-phonoon -noo-nis -no-oopengll -no-cups -no-xxcursoor -noo-xfixxes -nno-xraandr -no-xrrenderr -no-xkb -no-smm -no-xinerrama

29、-no-xsshape -no-sseparaate-deebug-iinfo -xplattform qws/llinux-arm-gg+ -eembeddded arrm -deepths 16 -nno-qvffb -qtt-gfx-linuxxfb -nno-gfxx-qvfbb -no-kbd-qqvfb -no-moouse-qqvfb -qt-kbbd-usbb -connfirm-licennse -qqt-mouuse-tsslib -I/homme/duaancp/mmytsliib/incclude -L/hoome/duuancp/mytsllib/liib 上面的紅色

30、部分分必須讓找前前面的tsllib的目錄錄設(shè)置,否則則會(huì)出現(xiàn)“The ttslib functtionallity ttest ffailedd!”錯(cuò)誤 ./make make innstalll cd exammple/qqws/moousecaalibtrrationn qmake &makee (生成mmouseccalibttratioon可執(zhí)行文文件,后面需需要將其拷貝貝到根文件中中)(這一步實(shí)現(xiàn)時(shí)時(shí)有問(wèn)題,可可能是環(huán)境變變量沒(méi)設(shè)置好好)4.制作根根文件 我的工作目錄是是在根文件下下,首先將rroot_ddefaullt.tgzz拷貝到根目目錄下,加壓壓,生成rooot_deefau

31、ltt cd /rooot/rooot_deffault mkdir ttslib cd tsliib 為了方便,將編編譯的tsllib下的bbin、ettc、libb文件夾全部部拷貝過(guò)來(lái) (拷貝tsllib支持庫(kù)庫(kù),我自己的的理解了)cp -a /home/duanccp/myttslib/lib ./ cp -a /home/duanccp/myttslib/bin ./ cp -a /home/duanccp/myttslib/etc ./ cd etc vi ts.cconf (據(jù)說(shuō)是tts.connf的大小有有限制,所以以必須裁剪,是是具體情況而而裁剪)將里面的第二條條語(yǔ)句(#mmo

32、dulee_raw inoutt)前面的“#”去掉,否則則后面觸摸屏屏將不能使用用 cd . mkdir mmini24440 (這這里將minni24400作為了qppe目錄,實(shí)實(shí)現(xiàn)GUI程程序)cd minii2440 因?yàn)槲业膄laash有644M,為了方方便,將QTT4.4.33的lib文文件夾全部拷拷貝過(guò)來(lái),但但是要?jiǎng)h除ffonts內(nèi)內(nèi)除了wennquanyyi_1200_50.qqpf 之外外的其他文件件,否則太大大 cp -a /mini22440/llib ./ rm -rf fontss mkdir ffonts cp -a /mini22440/llib/foonts/ww

33、enquaanyi_1120_500.qpf fontss 將前面編譯的QQT的觸摸屏屏自帶程序拷拷貝過(guò)來(lái) cp -a /*/exaample/qws/mmouseccalibttratioon/mouusecallibtraation ./ cd /rooot 解壓mkyafffsimaage.tggz,得到mmkyafffsimagge可執(zhí)行文文件 ./mkyafffsimaage rooot_deefaultt roott.yafff2 得到根文件rooot.yaaff2,如如果要看一下下大小,可以以執(zhí)行 ll roott.yafff2 -h 這樣可以將rooot.yaaff2燒到到板子

34、上去了了。 在板子上運(yùn)行mmouseccalibttratioon的時(shí)候沒(méi)沒(méi)有出現(xiàn)什么么錯(cuò)誤,可以以正確的顯示示輸入的漢字字 目前在板子上運(yùn)運(yùn)行的時(shí)候存存在一定的問(wèn)問(wèn)題:進(jìn)入ttslib運(yùn)運(yùn)行ts_ccalibrrate,總總是提示tss_openn: No such file or diirectoory,這個(gè)個(gè)問(wèn)題一直沒(méi)沒(méi)有解決,留留在后面解決決。 在板子上運(yùn)行的的時(shí)候環(huán)境變變量如下: (設(shè)置環(huán)境境變量)export QTDIRR=/minni24400exporrt LD_LIBRAARY_PAATH=$QQTDIR/lib:$OPIEDDIR/liibexpoort PAATH=$QQ

35、TDIR/lib:$OPIEDDIR/biin:$PAATHexpport QQWS_MOOUSE_PPROTO=tslibb:/devv/inpuut/eveent0exxport TSLIBB_ROOTT=/tsllibexpport TTSLIB_CALIBBFILE=/etc/pointtercallexporrt TSLLIB_PLLUGINDDIR=$TTSLIB_ROOT/lib/ttsexpoort TSSLIB_CCONFFIILE=/ttslib/etc/tts.connfexpoort TSSLIB_FFBDEVIICE=/dev/ffb0exxport QWS_KKEY

36、BOAARD=LLIRC:/dev/llircd 將上面的配配置寫成個(gè)腳腳本文件,開(kāi)開(kāi)機(jī)時(shí)在初始始化中開(kāi)啟就就行了。或者直接寫到/etc/pprofille 里面就就可以實(shí)現(xiàn)開(kāi)開(kāi)機(jī)啟動(dòng)設(shè)置置變量了。要是在板子上運(yùn)運(yùn)行的時(shí)候提提示缺少某些些文件的時(shí)候候,就去在PPC機(jī)上的llinux下下尋找,需要要主要的是看看若是提示缺缺少的文件是是以個(gè)鏈接文文件時(shí),需要要把鏈接對(duì)象象也拷入 我在運(yùn)行的時(shí)候候缺少一個(gè)llibrt.so.1(具具體記不得了了,好像是這這個(gè))的文件件,我的辦法法是把/ussr/loccal/arrm/3.44.1/arrm-linnux/liib下的該文文件和其鏈接接對(duì)象拷貝過(guò)過(guò)來(lái)

37、放在板子子里的libb中,就okk了!整理了一下我移移植QTE的的一些步驟,此此類網(wǎng)上很多多,我不保證證我的方法是是最好的,我我也不會(huì)把每每一步做什么么寫得很清楚楚。我所想要分享的的是我的經(jīng)驗(yàn)驗(yàn),而不是方方法。一些環(huán)境busyboxx 1.144.1qt-embeedded-linuxx-opennsourcce-srcc-4.5.1tslib 11.4gcc verrsion 4.3.22 (Souurceryy G+ Lite 2008qq3-72)構(gòu)建一個(gè)新的根根文件系統(tǒng)目目錄,路徑為為/root/rrootfss1.busybbox的編譯譯安裝相信這一步大家家都非常熟悉悉啦,在官網(wǎng)網(wǎng)下

38、載最新版版。以下是我我修改的幾處處地方Busyboxx Setttings - Buildd Optiions - (arm-llinux-)Crosss Commpilerr preffixBusyboxx Setttings - Insttallattion OOptionns -Doontt use /usrBusyboxx Setttings - Insttallattion OOptionns -(/rooot/roootfs) BusyyBox iinstalllatioon preefixBusyboxx Setttings -BBusyboox Libbrary Tuninng

39、 -* Fancyy Shelll proompts這項(xiàng)一定要選上上,不然設(shè)置置/etc/profiile 中PPS1變量不不生效# make;make instaall2.tslibb的編譯安裝裝# ./auttogen.sh# ./connfigurre -prrefix=/usr/locall/arm/4.3.22/arm-none-linuxx-gnueeabi/llibc/aarmv4tt/usr/ -hosst=armm-linuux ac_cv_fuunc_maalloc_0_nonnnull=yes# make;make instaall朋友們不要奇怪怪,安裝目錄錄的確是這個(gè)個(gè)

40、 /usrr/locaal/armm/4.3.2/armm-nonee-linuux-gnuueabi/libc/armv44t/usrr/好處就是在編譯譯QTE時(shí),不不用指定tsslib的頭頭文件和庫(kù)文文件。將來(lái)編編譯其他需要要鏈接tsllib的程序序時(shí),也不需需要指定。在做這一步前,需需要做一個(gè)目目錄鏈接在/usr/llocal/arm/44.3.2/arm-nnone-llinux-gnueaabi/liibc/arrmv4t/usr/目目錄下# ln -ss ././usrr/incllude ./當(dāng)然,如果這一一步你不是很很清楚,也可可以配置tsslib安裝裝在你指定的的目錄($tt

41、slib),到時(shí)候配配置QTE時(shí)時(shí) -I/($tsliib)/inncludee -L/($tsliib)/liib安裝tslibb到roottfs# ./connfigurre -prrefix=/roott/roottfs/ussr/ -hhost=aarm-liinux aac_cv_func_mallooc_0_nnonnulll=yess# make instaall3.QTE的編編譯與安裝最基本的配置# ./connfigurre -prrefix /usr -embeedded arm -xplattform qws/llinux-arm-gg+ -ddepthss 16 -qt

42、-mmouse-tslibb-prefixx /usrr 使用這這個(gè)配置,編編譯后的QTTE庫(kù)文件即即可放在目標(biāo)標(biāo)文件系統(tǒng)的的/usr/lib下,而不是默認(rèn)認(rèn)/usr/locall/Trollltechh/QtEmmbeddeed-4.55.1 這個(gè)個(gè)很深的目錄錄# make# cp liib/* /root/rootffs/usrr/lib -rd 將QTE庫(kù)庫(kù)文件拷貝到到根文件系統(tǒng)統(tǒng)的目錄# cp plluginss /rooot/roootfs/uusr -rrd 將QTTE插件目錄錄拷貝到根文文件系統(tǒng)的目目錄4.根文件系統(tǒng)統(tǒng)的設(shè)置這時(shí)/roott/roottfs/ussr下應(yīng)該有有 b

43、in etc iincludde libb sbinn目錄tslib生成成的etc目目錄,包含一一個(gè)tsliib的配置文文件 ts.conf,編編輯此文件,去去掉moduule_raaw inpput前的注注釋# mv ettc ./ 移動(dòng)到rrootfss的根目錄創(chuàng)建rootffs的其他目目錄,添加eetc目錄下下的其他文件件,拷貝tooolchaain下的庫(kù)庫(kù)文件,這不不是本文討論論的地方關(guān)鍵的幾處操作作進(jìn)行一次清理操操作#arm-liinux-sstrip lib/*.so#arm-liinux-sstrip usr/llib/*.so編輯etc/pprofille,添加以以下內(nèi)容exp

44、ort QWS_MMOUSE_PROTOO=Tsliib:/deev/eveent0export TSLIBB_CONSSOLEDEEVICE=noneexport TSLIBB_FBDEEVICE=/dev/fb0export TSLIBB_TSDEEVICE=/dev/eventt0export TSLIBB_CALIIBFILEE=/etcc/poinntercaalexport TSLIBB_CONFFFILE=/etc/ts.coonfexport TSLIBB_PLUGGINDIRR=/usrr/lib/ts好了,mkyaaffs2iimage 制作鏡像,燒燒寫鏡像,啟啟動(dòng)ts_c

45、aliibratee校驗(yàn)觸屏,運(yùn)運(yùn)行一個(gè)qtte程序試試試看。 說(shuō)明:以上筆記記來(lái)自一位叫叫長(zhǎng)風(fēng)的網(wǎng)友友。在這里我特別的的針對(duì)你的情情況說(shuō)明一下下:你應(yīng)該是有一個(gè)個(gè)能用的文件件系統(tǒng)了。這時(shí)候把你交叉叉編譯(這時(shí)時(shí)候已經(jīng)安裝裝在你的pcc上了)的庫(kù)庫(kù)搬到你的板板子上就行了了。比如默認(rèn)認(rèn)的是這個(gè)路路徑:/ussr/loccal/Trrollteech/QttEmbeddded-44.5.0同時(shí)在你的板子子上建立這么么個(gè)路徑,把把這個(gè)目錄下下的lib全全部復(fù)制到你你的板子的這這個(gè)路徑。順順便在上述的的這個(gè)路徑復(fù)復(fù)制一些例程程(在同目錄錄的demoos和exaampless)就在可個(gè)個(gè)進(jìn)行測(cè)試了了。另

46、外如果要用觸觸摸屏的話,認(rèn)認(rèn)真看上述網(wǎng)網(wǎng)友的筆記。 在這里就不不著重講解 QT的發(fā)展展和里面細(xì)節(jié)節(jié)的內(nèi)容,針針對(duì)嵌入式llinux系系統(tǒng)來(lái)說(shuō),使使用一種GUUI是很常見(jiàn)見(jiàn)的,那么首首先就涉及移移植的問(wèn)題,只只有再移植好好的情況下再再開(kāi)發(fā)自己的的產(chǎn) 品。當(dāng)當(dāng)然這個(gè)步驟驟不是死的,但但移植確實(shí)是是要做的,還還要做好,過(guò)過(guò)程有的時(shí)候候也不是很容容易的。今天天我就在s33c24100的平臺(tái)上移移植了QT44,然后把移移植出現(xiàn) 的的問(wèn)題記錄了了下來(lái),僅僅僅做個(gè)參考。1.開(kāi)發(fā)平臺(tái):ubuntu 81.0,交叉編譯器版本3.4.5(arm-linux-gcc),qt-embedded-linux-opens

47、ource-src-4.4.3.tar.gz。2.目標(biāo)平臺(tái):s3c2410,320*240觸摸屏 ,linux-,u-boot-1.3.43.移植步驟如下:(1)首先配置linux內(nèi)核,支持LCD驅(qū)動(dòng),然后點(diǎn)亮你的屏,并且支持framebuffer,具體的內(nèi)核配置如下: Device Drivers - Graphics support - Support for frame buffer devices - S3C2410 LCD framebuffer support 當(dāng)然里面還涉及一些細(xì)節(jié),這里就不一一說(shuō)了,如果大家這塊有問(wèn)題,可以提出來(lái)?。?)如果你想支持USB鼠標(biāo)和USB鍵盤,只需配

48、置內(nèi)核既可: Device Drivers - * HID Devices - USB Human Interface Device (full HID) support (3)編譯內(nèi)核進(jìn)行測(cè)試。(4)接下來(lái)我們?cè)谝陨瞎ぷ鞯幕A(chǔ)上開(kāi)始移植QT4。首先下載源碼:ftp:/ftp.trolltech.no/qt/source/qt-embedded-linux-opensource-src-4.4.3.tar.gz,放在你普通用戶的一個(gè)目錄,比如/home/yoyoili/qt4_port.解壓.(5)進(jìn)入解壓好的目錄。(6)然后就是很關(guān)鍵的配置,QT4的移植是通過(guò)配置來(lái)是否支持某種特性,比如op

49、enssl等等。那么根據(jù)你自己的需求呢進(jìn)行相應(yīng)的配置就可以了,這里參考網(wǎng)站的一篇文章進(jìn)行了配置,具體如下:./configure -prefix /home/yoyoili/qt4_port/qt/build /指定安裝的目錄,與開(kāi)發(fā)板上運(yùn)行的目錄一致-release -shared -fast -pch -no-qt3support -qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl -nomake examples -nomake demos -noma

50、ke tools-optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm-no-xinerama -no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g+ -embedded arm -depths 16 -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb-qt-kbd-us

51、b -confirm-license -no-armfpa這里我沒(méi)有去實(shí)現(xiàn)觸摸屏的校準(zhǔn),由于時(shí)間的問(wèn)題,以后陸續(xù)補(bǔ)充完整,如果支持觸摸屏在加一個(gè):-qt-mouse-tslib。這個(gè)過(guò)程如果涉及很多問(wèn)題,一般都是你的系統(tǒng)缺少了某些庫(kù)的問(wèn)題,我的ubuntu 8.10相應(yīng)的庫(kù)都安裝的比較齊全,沒(méi)有錯(cuò)誤,如果你是fedroa,只需要完全安裝,就不會(huì)有什么問(wèn)題,這個(gè)是驗(yàn)證過(guò)的?。?) 然后就是make & make install,編譯和安裝了,如果好的話,就會(huì)在你的安裝目錄,也就是 /home/yoyoili/qt4_port/qt/build 有相應(yīng)的如下目錄:bin include lib m

52、kspecs plugins translations,大家可以看看里面的內(nèi)容。這里我們關(guān)心的是一個(gè)lib,就是庫(kù)文件,以后交叉編譯好的程序在板子上跑起來(lái)以后都需要這些庫(kù)。把 所需要的庫(kù)拷貝到開(kāi)發(fā)板的相應(yīng)的目錄即可,這里比如:cp /home/yoyoili/qt4_port/qt/build/lib/libQt* /home/yoyoili/source/rootfs/home/qt/build/lib,當(dāng)然有的庫(kù)你可以不需要拷貝的。(8) 然后拷貝顯示中文的文泉驛字體,這里比如:cp /home/yoyoili/qt4_port/qt/build/lib/fonts/wenquanyi_1

53、60_75.qpf /home/yoyoili/source/rootfs/home/qt/build/fonts (前面的路徑就是編譯并安裝以后的目錄,這個(gè)字體就是這個(gè)目錄的lib/fonts下面 ,當(dāng)然后面就是我們開(kāi)發(fā)板根文件系統(tǒng)的目錄)(9)測(cè)試,我們用源碼自帶的程序來(lái)進(jìn)行測(cè)試,比如在源碼的example里有很多,你只需qmake & make就可以了,然后把可執(zhí)行文件拷貝開(kāi)發(fā)板上用的根文件系統(tǒng)。(10)設(shè)置相應(yīng)的環(huán)境變量,這個(gè)環(huán)境變量是給開(kāi)發(fā)板使用的,不是給你的PC機(jī)!具體如下: export QTDIR=/home/qt/build export LD_LIBRARY_PATH=$Q

54、TDIR/lib:$LD_LIBRARY_PATH /(否則找不到庫(kù)) export PATH=$QTDIR/bin:$PATH export QT_QWS_FONTDIR=/home/qt/build/fonts / (否則字體無(wú)法顯示) 當(dāng)然如果你用觸摸屏還有相關(guān)的設(shè)置,你也需要在這里添加?。?1)運(yùn)行我們的程序:./test -qws -fn /home/qt/build/fonts/wenquanyi_160_75.qpf然后你的屏上就有了顯示。(12)然后你可以在開(kāi)發(fā)板上插上你的USB鼠標(biāo)就可以來(lái)操作這個(gè)小QT程序了。(13)如果你想玩鍵盤,這樣有意思:設(shè) 置你的console=tt

55、y0既可以操作你的開(kāi)發(fā)板了,你就可以玩命令了,那么這個(gè)console的參數(shù)的指定有兩種方法,一個(gè)可以通過(guò)u-boot傳 遞,這里比如:setenv bootargs root=/dev/nfs nfsroot=10:/home/yoyoili/source/rootfs ip=20 init=/linuxrc console=tty0,另一個(gè)就是通過(guò)內(nèi)核,你只需配置內(nèi)核既可以:具體如下:Boot options - (root=/dev/nfs nfsroot=:/home/yoyoili/source/rootfs ip= init=/linuxrc console=tty0)!(14)這里

56、說(shuō)一下可能出現(xiàn)的問(wèn)題:1.在編譯你的QT程序的時(shí)候會(huì)有一個(gè)collect錯(cuò)誤,應(yīng)該是連接的qt4的庫(kù)不是arm交叉編譯工具編譯的,兩者連接有沖突。在中去掉對(duì)qt4庫(kù)的連接即可,增加一行CONFIG -= qt,即可去掉。2.如果出現(xiàn)這個(gè)問(wèn)題:/lib/libQtCore.so: undefined reference to clock_gettim解決的辦法就是在Makefile里的LFAGS后添加一個(gè) -lrt就可以。3.有的人用的交叉編譯器是用的arm-softfloat-linux-gnu-gcc,所以在make編譯的時(shí)候老是提示arm-linux-gcc 找不到,解決這個(gè)問(wèn)題的辦法很多

57、,一個(gè)方法就是重新制作你的交叉編譯器,修改arm-softfloat.dat(好像是這個(gè))將里面的TARGET修改 為arm-linux就可以了,另一個(gè)方法就是修改QT4源碼的mkspecs/qws/linux-arm-g+目錄下修改qmake.config 將arm-linux-gcc修改為arm-softfloat-linux-gcc,然后再make就行了。4.當(dāng)然你可以用很多工具來(lái)編譯你的程序,比如qtcreator,kdevelop!首先我們要知道道的是Qt平平臺(tái)有Pc開(kāi)開(kāi)發(fā)平臺(tái),(以以本人所裝的的Redhaat9linnux/Qtt4.3.55/arm-3.4.11版本為例)一、Qt

58、嵌入式式開(kāi)發(fā)平臺(tái)的的建立概述:Qt嵌入入式開(kāi)發(fā)平臺(tái)臺(tái)包括:1、Qt-X111開(kāi)發(fā)平臺(tái)臺(tái):(即為我我們平時(shí)開(kāi)發(fā)發(fā)Qt應(yīng)用程程序時(shí)使用的的系統(tǒng)平臺(tái))。2、QtopiiaCoree-4.3.5開(kāi)發(fā)平臺(tái)臺(tái)(即fraamebufffer):該平臺(tái)可以以讓Qt程序序在pc機(jī)上上模擬在嵌入入式平臺(tái)的運(yùn)運(yùn)行情況,一一般在QtoopiaCoore上模擬擬運(yùn)行成功后后才,進(jìn)行交交叉編譯。3、QtopiiaCoree-4.3.5-armm交叉編譯平平臺(tái):在此平平臺(tái)下編譯通通過(guò)的Qt程程序就可以移移植到armm板上運(yùn)行了了。 step1: 建立Pcc開(kāi)發(fā)平臺(tái)(xx11、reedhat99的桌面就屬屬于X11): 下載

59、Qtt4.3.55pc開(kāi)發(fā)包包qt-x111-opeensourrce-srrc-4.33.5.taar.gz #tarr xzvff qt-xx11-oppensouurce-ssrc-4.3.5.ttar.gzz #cd Qt-4.3.5 #./cconfiggure / #makke insstall /此此過(guò)程需要33-8小時(shí) 安裝好后后,系統(tǒng)默認(rèn)認(rèn)安裝在/uusr/loocal/TTrollttech/QQt-4.33.5目錄下下 檢查環(huán)境境變量: #whiich qmmake step2: 建立QttopiaCCore-44.3.5編編譯平臺(tái)(此此時(shí)編譯器仍仍然用的是默默認(rèn)的gcc

60、c) 此平臺(tái)下下的安裝包原原碼包和X111平臺(tái)是一一樣的,只是是confiigure時(shí)時(shí)配置不同 #tarr xzvff qt-xx11-oppensouurce-ssrc-4.3.5.ttar.gzz #cd Qt-4.3.5 #./cconfiggure -embeddded xx86 -qqvbf -no-oppenssll /注注意幾個(gè)選項(xiàng)項(xiàng)表示,以qqvfb表示示 -no-oppenssll表示不需要要認(rèn)證,否則則會(huì)安裝過(guò)程程中一直叫你你輸入yess確認(rèn) #makke insstall /此過(guò)程需要要3-8個(gè)小小時(shí) 安裝完成成后usr目目錄多了一個(gè)個(gè)文件夾/uusr/loocal/T

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論