




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、QT4移植到ARM9開發(fā)板1 編譯qte從 HYPERLINK 下載源代碼,選擇開源版本(非商業(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)境境需要作一些些修改才能編編譯通過: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 (時時間4個小時時左右)make innstalll2編譯busyybox1.13.44從 HYPERLINK /downloads/ http:/www.busybbox.neet/dowwnloadds/下載bbusyboox工具。修改Makeffile CROSSS_COMP
3、PILE=aarm-liinux-Make meenuconnfig選擇擇動態(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)用測試程序拷拷貝到開發(fā)板板根目錄cp qt-eembeddded-liinux-oopensoource-src-44.5.1/demoss/defoorm/deeform
5、 .注:命令中引用用的路徑為相相對路徑4運行QTE測測試程序兩種方式可以用mkcrramfs將將busybbox的_iinstalll目錄做成成文件系統(tǒng)鏡鏡像,然后下下載可以用NFS掛掛載./deforrm qws 屏屏幕看結(jié)果我發(fā)現(xiàn)做出來的的東西然后寫寫下來一起分分享是很快樂樂的事,哈哈哈,越寫越上上癮了,但畢畢竟精力有限限,干的也比比較少,時間間總感覺不夠夠用。所以干干點寫點,還還是老話大部部分來自網(wǎng)上上,里面我就就多羅嗦兩句句。好了不多多說了,接著著上次觸摸屏屏驅(qū)動移植開開始寫,上次次我們把觸摸摸屏給移植了了,怎么能用用實踐來檢驗驗?zāi)兀瑏砜纯纯次业腝T44程序是否能能通過觸摸屏屏就可以控
6、制制呢,就這個個問題我做了了一些工作。老老樣子介紹系系統(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,具體的的移植過程如如下:(1)得到源碼包包tslibb-1.4.tar.ggz,上網(wǎng)一一搜索就很多多,具體就不不說了。(22)$cd tslibb$expoort PRREFIX=/homee/yoyooili/ttslib(這個就是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)生的必要的的文件,主要要是頭文件和和庫文件,在在移植QT44的時候需要要這些文
8、件。(3)在開發(fā)板的/home/yoyoili創(chuàng)建tslib目錄,將編譯好的tslib目錄下的lib,etc,bin目錄拷貝到這個目錄,然后編輯etc/ts.conf,具體內(nèi)容如下,其他的內(nèi)容全部刪除:我的如下:module_raw inputmodule pthres pmin=1module variance delta=30module dejitter delta=100module linear注意module_raw前不要有空格!(4)接下來就是測試觸摸屏和tslib是否好用了,首先設(shè)置環(huán)境變量,在開發(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)烈建議大家寫一個腳本來執(zhí)行,否則我們寶貴的時間就浪費在這上面了!(5)$cd /home/yoyoili/tslib/bin運行:./ts_calibrate,然后在/etc就有個pointercal文件了。這個就是校準(zhǔn)后產(chǎn)生的文件,以后我們的QT程序通過觸摸屏來控制必須有它的。(6)接下來我們就開始移植我們QT4了,這個我們還是基于以前寫的那個QT4移植文檔,具體可
11、以看我以前的日志,源碼包還是qt-4.4.3的,重新解壓然后,如果你的交叉編譯器是arm-softfloat-linux-gnu-gcc,請修改源代碼的mkspec/qws/linux-arm-g+/qmake.conf。然后修改mkspec/qws/linux-arm-g+/qmake.conf對QMAKE_INCDIR和QMAKE_LIBDIR進(jìn)行賦值,具體如下:QMAKE_INCDIR =/home/yoyoili/tslib/includeQMAKE_LIBDIR =/home/yoyoili/tslib/lib也就是指定了交叉編譯好的tslib的頭文件和庫的路徑而已,然后就開始配置.
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)錯誤,可以重新關(guān)掉終端,然后重新解壓QT4包,再配置和編譯一下。make install這樣我們的/home/yoyoili/source/qt/build就有了我們的QT4的東西了,主要是庫文件,在開發(fā)板上創(chuàng)建/home/yoyoili/source/qt/build/lib,fonts目錄,拷貝相應(yīng)的庫文件到開發(fā)板的/home/yoyoili/source/qt/build/lib目錄下。libQtCore.so,libQtGui.so.4,libQtNetwork.so.4。向開發(fā)板的/home/yoyoili/source/qt/build/fonts/拷貝unifont_160
15、_50.qpf,wenquanyi_120_50.qpf這些字體。這些字體是在編譯好的qt的/home/yoyoili/source/qt/build/lib/fonts目錄下面,然后拷貝開發(fā)板的/home/yoyoili/source/qt/build/fonts/下即可。編寫一個設(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)文件,如果沒有,要校準(zhǔn),如果有不用校準(zhǔn)!./demo -qws &最近一直在試驗驗如何把自己己編譯的 qqt4 / qtopiia4 應(yīng)用用程序 移植植 到 ARRM開發(fā)板上上去,今天(2008年11月14
18、日星期五)終于把這條路子走通了,感覺一下子輕松了很多,可以舒一口氣了,值得慶祝!以后的事雖很多,但總算心里有點底了,后面的任務(wù)應(yīng)該是如何完善自己開發(fā)的系統(tǒng)程序,添加必要的功能。如何在arm開開發(fā)板中移植植自己開發(fā)的的qt4應(yīng)用程程序,我以自自己編寫的wwwjweddm程序為例例:1、設(shè)置好主機(jī)機(jī)開發(fā)環(huán)境,qt-x11和qtcore安裝完畢,可以參考有關(guān)文章設(shè)置好環(huán)境2、開發(fā)自己的的應(yīng)用程序,可可以參考有關(guān)關(guān)書籍精通通qt4編程qtt c+ GUI編程程3、保證自己的的應(yīng)用程序在在主機(jī)上編譯譯通過,特別別是在QVFFB中使用qtccore的庫庫編譯通過;4、開始交叉編編譯,首先設(shè)設(shè)置好QT/em
19、beddded ffor arrm的庫路徑徑,具體如下下:可以根據(jù)據(jù)自己的具體體情況修改,在在ARM板上上嵌入式qtt4的庫文件件編譯過程可可以參考另一一篇文章: HYPERLINK / o Qtopia-core-4.3.4在s3c2410上的交叉編譯移植 Qtopia-core-4.3.44在s3c22410上的的交叉編譯移移植 HYPERLINK /article/1454969.html http:/articcle/144549699.htmll在主機(jī)/rooot目錄下面面新建一個文文件 #geedit qqte_ennv,添加如如下內(nèi)容export QTDIRR=/mntt/nfs
20、/qtcorre434export PATH=$QTDIIR/binn:$PATTHexport LD_LIIBRARYY_PATHH=$QTDDIR/liib:$LDD_LIBRRARY_PPATH需要交叉編譯的的時候,重新新開一個終端端,在/rooot目錄下下(主機(jī)上為為了方便,我我一直采用rroot用戶戶登陸),先先ls一下,看看文件在不在在,然后#. qte_env /*注注意 . 后面有有一個空格*/這樣即設(shè)定好了了qte ffor arrm的庫路徑徑,在此終端端下面,進(jìn)入入要編譯的工工程文件路徑徑下;#cd /mnnt/nfss/qtcoore4344/demooes/wwwjwe
21、dmm#make cclean#qmake projject#qmake#make 如果沒出出錯即可以生生成一個wwwjwedmm的二進(jìn)制可可執(zhí)行文件#ls 拷貝這個wwjjwedm到到開發(fā)板上去去,不過我使使用的是qtt4的庫太大大,不能移植植到開發(fā)板,我我使用nfss掛載的方式式,可以參考考其他文章,如如何建立交叉叉編譯環(huán)境。連接好主機(jī)和開開發(fā)板之間的的串口線和網(wǎng)網(wǎng)線,設(shè)置好好地址,保證證能啟動掛載載,所涉及的的一些內(nèi)容和和具體事項可可以訪問 HYPERLINK /1020791.html htttp:/10207791.httml,參考考相關(guān)文章;啟動開發(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既可以在板子上上啟動自己編編譯的wwjjwedm程程序;*注意:qt44用不同的版版本,編譯參參數(shù)不一樣可可能編譯的庫庫是不一樣的的,執(zhí)行wwwjwedmm程序時會出出現(xiàn)不同大大大小小的錯誤誤,在這里我我交叉編譯使使用的qt44的庫和我要要nfs掛載
23、載的庫是同一一個庫路徑,保保證編譯以及及在arm板板上執(zhí)行文件件是不出現(xiàn)錯錯誤。mini24440 qt44 移植(轉(zhuǎn)轉(zhuǎn)+自己添加加) HYPERLINK /cgy136652/blog/static/36168728200932410649487/# l # LInux環(huán)境境搭建與設(shè)置置 20099-04-224 10:06 閱讀5441評論11 字號: HYPERLINK /cgy136652/blog/static/36168728200932410649487/# l # 大 HYPERLINK /cgy136652/blog/static/3616872820093241064948
24、7/# l # 中 HYPERLINK /cgy136652/blog/static/36168728200932410649487/# l # 小 由于mmini24440的光盤盤里自帶一個個root_defauult.tggz根文件,因因此省了很大大一部分力氣氣自己去裁剪剪,但是也有有很大的缺陷陷就是:本身身就對內(nèi)核不不熟悉,現(xiàn)在在跳過了這一一步,就更加加不理解了。以以后還是要補(bǔ)補(bǔ)上來。 我做的時候現(xiàn)在在fc8下試試過,第一次次是配置的時時候“The ttslib functtionallity ttest ffailedd!”錯誤 但是不明白原因因的,我是按按照下面的配配置來的還是是出問
25、題了。去掉后根據(jù)./confiigure -h 的提提示配置完成成,gmakke到某處時時,錯誤中斷斷。試了幾次次都是這樣也許是我的fcc8并非完全全安裝吧。最最后換到了親親愛的RH99.0下,按按照下面的指指示編譯成功功。不過還有有個現(xiàn)象就是是在fc8下下安裝qt-x11可以以成功,RHH9.0下安安裝qt-xx11就失敗敗了??赡苁鞘荊CC版本本的問題了。在在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 (可以先先生成個caache文件件) #maake #maake innstalll-striip /生生成瘦身應(yīng)用用程序和庫 2.安裝armm-linuux-gccc-3.4.1.tarr.bz2 在根目目錄下解壓,解解壓后的默認(rèn)認(rèn)目錄在/uusr/loocal/aarm/3.4.1 設(shè)置環(huán)環(huá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è)置,否則則會出現(xiàn)“The ttslib functtionallity ttest ffailedd!”錯誤 ./make make innstalll cd exammple/qqws/moousecaalibtrrationn qmake &makee (生成mmouseccalibttratioon可執(zhí)行文文件,后面需需要將其拷貝貝到根文件中中)(這一步實現(xiàn)時時有問題,可可能是環(huán)境變變量沒設(shè)置好好)4.制作根根文件 我的工作目錄是是在根文件下下,首先將rroot_ddefaullt.tgzz拷貝到根目目錄下,加壓壓,生成rooot_deefau
31、ltt cd /rooot/rooot_deffault mkdir ttslib cd tsliib 為了方便,將編編譯的tsllib下的bbin、ettc、libb文件夾全部部拷貝過來 (拷貝tsllib支持庫庫,我自己的的理解了)cp -a /home/duanccp/myttslib/lib ./ cp -a /home/duanccp/myttslib/bin ./ cp -a /home/duanccp/myttslib/etc ./ cd etc vi ts.cconf (據(jù)說是tts.connf的大小有有限制,所以以必須裁剪,是是具體情況而而裁剪)將里面的第二條條語句(#mmo
32、dulee_raw inoutt)前面的“#”去掉,否則則后面觸摸屏屏將不能使用用 cd . mkdir mmini24440 (這這里將minni24400作為了qppe目錄,實實現(xiàn)GUI程程序)cd minii2440 因為我的flaash有644M,為了方方便,將QTT4.4.33的lib文文件夾全部拷拷貝過來,但但是要刪除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的觸摸屏屏自帶程序拷拷貝過來 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、上去了了。 在板子上運行mmouseccalibttratioon的時候沒沒有出現(xiàn)什么么錯誤,可以以正確的顯示示輸入的漢字字 目前在板子上運運行的時候存存在一定的問問題:進(jìn)入ttslib運運行ts_ccalibrrate,總總是提示tss_openn: No such file or diirectoory,這個個問題一直沒沒有解決,留留在后面解決決。 在板子上運行的的時候環(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 將上面的配配置寫成個腳腳本文件,開開機(jī)時在初始始化中開啟就就行了。或者直接寫到/etc/pprofille 里面就就可以實現(xiàn)開開機(jī)啟動設(shè)置置變量了。要是在板子上運運行的時候提提示缺少某些些文件的時候候,就去在PPC機(jī)上的llinux下下尋找,需要要主要的是看看若是提示缺缺少的文件是是以個鏈接文文件時,需要要把鏈接對象象也拷入 我在運行的時候候缺少一個llibrt.so.1(具具體記不得了了,好像是這這個)的文件件,我的辦法法是把/ussr/loccal/arrm/3.44.1/arrm-linnux/liib下的該文文件和其鏈接接對象拷貝過過來
37、放在板子子里的libb中,就okk了!整理了一下我移移植QTE的的一些步驟,此此類網(wǎng)上很多多,我不保證證我的方法是是最好的,我我也不會把每每一步做什么么寫得很清楚楚。我所想要分享的的是我的經(jīng)驗驗,而不是方方法。一些環(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)建一個新的根根文件系統(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這項一定要選上上,不然設(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朋友們不要奇怪怪,安裝目錄錄的確是這個個
40、 /usrr/locaal/armm/4.3.2/armm-nonee-linuux-gnuueabi/libc/armv44t/usrr/好處就是在編譯譯QTE時,不不用指定tsslib的頭頭文件和庫文文件。將來編編譯其他需要要鏈接tsllib的程序序時,也不需需要指定。在做這一步前,需需要做一個目目錄鏈接在/usr/llocal/arm/44.3.2/arm-nnone-llinux-gnueaabi/liibc/arrmv4t/usr/目目錄下# ln -ss ././usrr/incllude ./當(dāng)然,如果這一一步你不是很很清楚,也可可以配置tsslib安裝裝在你指定的的目錄($tt
41、slib),到時候配配置QTE時時 -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 使用這這個配置,編編譯后的QTTE庫文件即即可放在目標(biāo)標(biāo)文件系統(tǒng)的的/usr/lib下,而不是默認(rèn)認(rèn)/usr/locall/Trollltechh/QtEmmbeddeed-4.55.1 這個個很深的目錄錄# make# cp liib/* /root/rootffs/usrr/lib -rd 將QTE庫庫文件拷貝到到根文件系統(tǒng)統(tǒng)的目錄# cp plluginss /rooot/roootfs/uusr -rrd 將QTTE插件目錄錄拷貝到根文文件系統(tǒng)的目目錄4.根文件系統(tǒng)統(tǒng)的設(shè)置這時/roott/roottfs/ussr下應(yīng)該有有 b
43、in etc iincludde libb sbinn目錄tslib生成成的etc目目錄,包含一一個tsliib的配置文文件 ts.conf,編編輯此文件,去去掉moduule_raaw inpput前的注注釋# mv ettc ./ 移動到rrootfss的根目錄創(chuàng)建rootffs的其他目目錄,添加eetc目錄下下的其他文件件,拷貝tooolchaain下的庫庫文件,這不不是本文討論論的地方關(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 制作鏡像,燒燒寫鏡像,啟啟動ts_c
45、aliibratee校驗觸屏,運運行一個qtte程序試試試看。 說明:以上筆記記來自一位叫叫長風(fēng)的網(wǎng)友友。在這里我特別的的針對你的情情況說明一下下:你應(yīng)該是有一個個能用的文件件系統(tǒng)了。這時候把你交叉叉編譯(這時時候已經(jīng)安裝裝在你的pcc上了)的庫庫搬到你的板板子上就行了了。比如默認(rèn)認(rèn)的是這個路路徑:/ussr/loccal/Trrollteech/QttEmbeddded-44.5.0同時在你的板子子上建立這么么個路徑,把把這個目錄下下的lib全全部復(fù)制到你你的板子的這這個路徑。順順便在上述的的這個路徑復(fù)復(fù)制一些例程程(在同目錄錄的demoos和exaampless)就在可個個進(jìn)行測試了了。另
46、外如果要用觸觸摸屏的話,認(rèn)認(rèn)真看上述網(wǎng)網(wǎng)友的筆記。 在這里就不不著重講解 QT的發(fā)展展和里面細(xì)節(jié)節(jié)的內(nèi)容,針針對嵌入式llinux系系統(tǒng)來說,使使用一種GUUI是很常見見的,那么首首先就涉及移移植的問題,只只有再移植好好的情況下再再開發(fā)自己的的產(chǎn) 品。當(dāng)當(dāng)然這個步驟驟不是死的,但但移植確實是是要做的,還還要做好,過過程有的時候候也不是很容容易的。今天天我就在s33c24100的平臺上移移植了QT44,然后把移移植出現(xiàn) 的的問題記錄了了下來,僅僅僅做個參考。1.開發(fā)平臺:ubuntu 81.0,交叉編譯器版本3.4.5(arm-linux-gcc),qt-embedded-linux-opens
47、ource-src-4.4.3.tar.gz。2.目標(biāo)平臺:s3c2410,320*240觸摸屏 ,linux-,u-boot-1.3.43.移植步驟如下:(1)首先配置linux內(nèi)核,支持LCD驅(qū)動,然后點亮你的屏,并且支持framebuffer,具體的內(nèi)核配置如下: Device Drivers - Graphics support - Support for frame buffer devices - S3C2410 LCD framebuffer support 當(dāng)然里面還涉及一些細(xì)節(jié),這里就不一一說了,如果大家這塊有問題,可以提出來!(2)如果你想支持USB鼠標(biāo)和USB鍵盤,只需配
48、置內(nèi)核既可: Device Drivers - * HID Devices - USB Human Interface Device (full HID) support (3)編譯內(nèi)核進(jìn)行測試。(4)接下來我們在以上工作的基礎(chǔ)上開始移植QT4。首先下載源碼:ftp:/ftp.trolltech.no/qt/source/qt-embedded-linux-opensource-src-4.4.3.tar.gz,放在你普通用戶的一個目錄,比如/home/yoyoili/qt4_port.解壓.(5)進(jìn)入解壓好的目錄。(6)然后就是很關(guān)鍵的配置,QT4的移植是通過配置來是否支持某種特性,比如op
49、enssl等等。那么根據(jù)你自己的需求呢進(jìn)行相應(yīng)的配置就可以了,這里參考網(wǎng)站的一篇文章進(jìn)行了配置,具體如下:./configure -prefix /home/yoyoili/qt4_port/qt/build /指定安裝的目錄,與開發(fā)板上運行的目錄一致-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這里我沒有去實現(xiàn)觸摸屏的校準(zhǔn),由于時間的問題,以后陸續(xù)補(bǔ)充完整,如果支持觸摸屏在加一個:-qt-mouse-tslib。這個過程如果涉及很多問題,一般都是你的系統(tǒng)缺少了某些庫的問題,我的ubuntu 8.10相應(yīng)的庫都安裝的比較齊全,沒有錯誤,如果你是fedroa,只需要完全安裝,就不會有什么問題,這個是驗證過的?。?) 然后就是make & make install,編譯和安裝了,如果好的話,就會在你的安裝目錄,也就是 /home/yoyoili/qt4_port/qt/build 有相應(yīng)的如下目錄:bin include lib m
52、kspecs plugins translations,大家可以看看里面的內(nèi)容。這里我們關(guān)心的是一個lib,就是庫文件,以后交叉編譯好的程序在板子上跑起來以后都需要這些庫。把 所需要的庫拷貝到開發(fā)板的相應(yīng)的目錄即可,這里比如:cp /home/yoyoili/qt4_port/qt/build/lib/libQt* /home/yoyoili/source/rootfs/home/qt/build/lib,當(dāng)然有的庫你可以不需要拷貝的。(8) 然后拷貝顯示中文的文泉驛字體,這里比如:cp /home/yoyoili/qt4_port/qt/build/lib/fonts/wenquanyi_1
53、60_75.qpf /home/yoyoili/source/rootfs/home/qt/build/fonts (前面的路徑就是編譯并安裝以后的目錄,這個字體就是這個目錄的lib/fonts下面 ,當(dāng)然后面就是我們開發(fā)板根文件系統(tǒng)的目錄)(9)測試,我們用源碼自帶的程序來進(jìn)行測試,比如在源碼的example里有很多,你只需qmake & make就可以了,然后把可執(zhí)行文件拷貝開發(fā)板上用的根文件系統(tǒng)。(10)設(shè)置相應(yīng)的環(huán)境變量,這個環(huán)境變量是給開發(fā)板使用的,不是給你的PC機(jī)!具體如下: export QTDIR=/home/qt/build export LD_LIBRARY_PATH=$Q
54、TDIR/lib:$LD_LIBRARY_PATH /(否則找不到庫) export PATH=$QTDIR/bin:$PATH export QT_QWS_FONTDIR=/home/qt/build/fonts / (否則字體無法顯示) 當(dāng)然如果你用觸摸屏還有相關(guān)的設(shè)置,你也需要在這里添加?。?1)運行我們的程序:./test -qws -fn /home/qt/build/fonts/wenquanyi_160_75.qpf然后你的屏上就有了顯示。(12)然后你可以在開發(fā)板上插上你的USB鼠標(biāo)就可以來操作這個小QT程序了。(13)如果你想玩鍵盤,這樣有意思:設(shè) 置你的console=tt
55、y0既可以操作你的開發(fā)板了,你就可以玩命令了,那么這個console的參數(shù)的指定有兩種方法,一個可以通過u-boot傳 遞,這里比如:setenv bootargs root=/dev/nfs nfsroot=10:/home/yoyoili/source/rootfs ip=20 init=/linuxrc console=tty0,另一個就是通過內(nèi)核,你只需配置內(nèi)核既可以:具體如下:Boot options - (root=/dev/nfs nfsroot=:/home/yoyoili/source/rootfs ip= init=/linuxrc console=tty0)!(14)這里
56、說一下可能出現(xiàn)的問題:1.在編譯你的QT程序的時候會有一個collect錯誤,應(yīng)該是連接的qt4的庫不是arm交叉編譯工具編譯的,兩者連接有沖突。在中去掉對qt4庫的連接即可,增加一行CONFIG -= qt,即可去掉。2.如果出現(xiàn)這個問題:/lib/libQtCore.so: undefined reference to clock_gettim解決的辦法就是在Makefile里的LFAGS后添加一個 -lrt就可以。3.有的人用的交叉編譯器是用的arm-softfloat-linux-gnu-gcc,所以在make編譯的時候老是提示arm-linux-gcc 找不到,解決這個問題的辦法很多
57、,一個方法就是重新制作你的交叉編譯器,修改arm-softfloat.dat(好像是這個)將里面的TARGET修改 為arm-linux就可以了,另一個方法就是修改QT4源碼的mkspecs/qws/linux-arm-g+目錄下修改qmake.config 將arm-linux-gcc修改為arm-softfloat-linux-gcc,然后再make就行了。4.當(dāng)然你可以用很多工具來編譯你的程序,比如qtcreator,kdevelop!首先我們要知道道的是Qt平平臺有Pc開開發(fā)平臺,(以以本人所裝的的Redhaat9linnux/Qtt4.3.55/arm-3.4.11版本為例)一、Qt
58、嵌入式式開發(fā)平臺的的建立概述:Qt嵌入入式開發(fā)平臺臺包括:1、Qt-X111開發(fā)平臺臺:(即為我我們平時開發(fā)發(fā)Qt應(yīng)用程程序時使用的的系統(tǒng)平臺)。2、QtopiiaCoree-4.3.5開發(fā)平臺臺(即fraamebufffer):該平臺可以以讓Qt程序序在pc機(jī)上上模擬在嵌入入式平臺的運運行情況,一一般在QtoopiaCoore上模擬擬運行成功后后才,進(jìn)行交交叉編譯。3、QtopiiaCoree-4.3.5-armm交叉編譯平平臺:在此平平臺下編譯通通過的Qt程程序就可以移移植到armm板上運行了了。 step1: 建立Pcc開發(fā)平臺(xx11、reedhat99的桌面就屬屬于X11): 下載
59、Qtt4.3.55pc開發(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 /此此過程需要33-8小時 安裝好后后,系統(tǒng)默認(rèn)認(rèn)安裝在/uusr/loocal/TTrollttech/QQt-4.33.5目錄下下 檢查環(huán)境境變量: #whiich qmmake step2: 建立QttopiaCCore-44.3.5編編譯平臺(此此時編譯器仍仍然用的是默默認(rèn)的gcc
60、c) 此平臺下下的安裝包原原碼包和X111平臺是一一樣的,只是是confiigure時時配置不同 #tarr xzvff qt-xx11-oppensouurce-ssrc-4.3.5.ttar.gzz #cd Qt-4.3.5 #./cconfiggure -embeddded xx86 -qqvbf -no-oppenssll /注注意幾個選項項表示,以qqvfb表示示 -no-oppenssll表示不需要要認(rèn)證,否則則會安裝過程程中一直叫你你輸入yess確認(rèn) #makke insstall /此過程需要要3-8個小小時 安裝完成成后usr目目錄多了一個個文件夾/uusr/loocal/T
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年第四季度延安府谷縣重點產(chǎn)業(yè)鏈人才需求目錄(24人)筆試參考題庫附帶答案詳解
- 2025年新型鋁鎂合金材料項目發(fā)展計劃
- 第二章第一節(jié)《制作簡易地球儀》實驗教學(xué)設(shè)計-2024-2025學(xué)年中圖版地理七年級上冊
- 2025年兩性離子聚合物泥漿處理劑項目建議書
- 2024年水發(fā)水電第三季度社會招聘筆試參考題庫附帶答案詳解
- 第五課互聯(lián)網(wǎng)接入 教學(xué)設(shè)計 2024-2025學(xué)年浙教版(2023)初中信息技術(shù)七年級上冊
- 《游戲編程的奧秘》教學(xué)設(shè)計
- 2024年江蘇省連云港市贛榆區(qū)和安中學(xué)中考三模語文試卷
- 老式唱片機(jī):聆聽音樂里的似水流年
- 2024年山東省環(huán)保發(fā)展集團(tuán)數(shù)智有限公司權(quán)屬公司招聘(社招)筆試參考題庫附帶答案詳解
- 《高尿酸血癥腎損害》課件
- 天然氣公司巡視檢查管理細(xì)則(3篇)
- 《大模型原理與技術(shù)》全套教學(xué)課件
- 九年級道德與法治下冊 第一單元 我們共同的世界 第二課 構(gòu)建人類命運共同體 第2框《謀求互利共贏》說課稿 新人教版
- 遼寧省營口市2024-2025學(xué)年七年級上學(xué)期期中語文試題
- 《畫垂線和平行線》(教案)2023-2024學(xué)年數(shù)學(xué)四年級上冊
- GB/T 44770-2024智能火電廠技術(shù)要求
- 經(jīng)典女士剪發(fā)技術(shù)圖解教程
- 2023年護(hù)理人員分層培訓(xùn)、考核計劃表
- 第二章-高壓開關(guān)電器
- 人工智能在人力資源招聘中的創(chuàng)新應(yīng)用
評論
0/150
提交評論