最具体的QT4移植ARM9开发板方法_第1页
最具体的QT4移植ARM9开发板方法_第2页
最具体的QT4移植ARM9开发板方法_第3页
最具体的QT4移植ARM9开发板方法_第4页
最具体的QT4移植ARM9开发板方法_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、QT4移植到ARM9开发板1 编译qte从 HYPERLINK 下载源代码,选择开源版本(非商业版本),选择Qt libraries 4.5 for embedded linux(128M)在源代码目录下下执行:./confiigure embeedded arm -xplattform qws/llinux-arm-gg+ -no-qtt3suppport -qt-moouse-llinuxttp 在redhatt9.0环境境需要作一些些修改才能编编译通过: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选择择动态编译,默默认配置保存存即可如果在Redhhat2.44虚拟机上编编译,需需修修改netwworkinng/intterfacce.c添加宏定义#ddefinee ARPHHRD_INNFINIBBAND 3325. makke alll insttall(使使用3.4.1编译器)3建立配置文件件进入_insttall目录录mkdir ddev liib tmpp procccd dev mknod ffb0 c 29 0 建立frramebuuffer设设备文件mknod tts0 133 128 建立触摸摸屏设备文

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/* .应用测试程序拷拷贝到开发板板根目录cp qt-eembeddded-liinux-oopensoource-src-44.5.1/demoss/defoorm/deeform

5、 .注:命令中引用用的路径为相相对路径4运行QTE测测试程序两种方式可以用mkcrramfs将将busybbox的_iinstalll目录做成成文件系统镜镜像,然后下下载可以用NFS挂挂载./deforrm qws 屏屏幕看结果我发现做出来的的东西然后写写下来一起分分享是很快乐乐的事,哈哈哈,越写越上上瘾了,但毕毕竟精力有限限,干的也比比较少,时间间总感觉不够够用。所以干干点写点,还还是老话大部部分来自网上上,里面我就就多罗嗦两句句。好了不多多说了,接着着上次触摸屏屏驱动移植开开始写,上次次我们把触摸摸屏给移植了了,怎么能用用实践来检验验呢,来看看看我的QT44程序是否能能通过触摸屏屏就可以控

6、制制呢,就这个个问题我做了了一些工作。老老样子介绍系系统:1.主主机系统:uubuntuu 8.100 交叉编译译器3.4.5 u-bboot-11.3.4 linuxx-22.目标系统统:s3c224103.首先要让触触摸屏很好的的工作就先去去做校准的工工作,这里我我们用tsllib-1.4,具体的的移植过程如如下:(1)得到源码包包tslibb-1.4.tar.ggz,上网一一搜索就很多多,具体就不不说了。(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以后产产生的必要的的文件,主要要是头文件和和库文件,在在移植QT44的时候需要要这些文

8、件。(3)在开发板的/home/yoyoili创建tslib目录,将编译好的tslib目录下的lib,etc,bin目录拷贝到这个目录,然后编辑etc/ts.conf,具体内容如下,其他的内容全部删除:我的如下:module_raw inputmodule pthres pmin=1module variance delta=30module dejitter delta=100module linear注意module_raw前不要有空格!(4)接下来就是测试触摸屏和tslib是否好用了,首先设置环境变量,在开发板上设置:$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这里强烈建议大家写一个脚本来执行,否则我们宝贵的时间就浪费在这上面了!(5)$cd /home/yoyoili/tslib/bin运行:./ts_calibrate,然后在/etc就有个pointercal文件了。这个就是校准后产生的文件,以后我们的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进行赋值,具体如下: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、果出现错误,可以重新关掉终端,然后重新解压QT4包,再配置和编译一下。make install这样我们的/home/yoyoili/source/qt/build就有了我们的QT4的东西了,主要是库文件,在开发板上创建/home/yoyoili/source/qt/build/lib,fonts目录,拷贝相应的库文件到开发板的/home/yoyoili/source/qt/build/lib目录下。libQtCore.so,libQtGui.so.4,libQtNetwork.so.4。向开发板的/home/yoyoili/source/qt/build/fonts/拷贝unifont_160

15、_50.qpf,wenquanyi_120_50.qpf这些字体。这些字体是在编译好的qt的/home/yoyoili/source/qt/build/lib/fonts目录下面,然后拷贝开发板的/home/yoyoili/source/qt/build/fonts/下即可。编写一个设置环境变量的脚本:#!/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 /判断是否有校准文件,如果没有,要校准,如果有不用校准!./demo -qws &最近一直在试验验如何把自己己编译的 qqt4 / qtopiia4 应用用程序 移植植 到 ARRM开发板上上去,今天(2008年11月14

18、日星期五)终于把这条路子走通了,感觉一下子轻松了很多,可以舒一口气了,值得庆祝!以后的事虽很多,但总算心里有点底了,后面的任务应该是如何完善自己开发的系统程序,添加必要的功能。如何在arm开开发板中移植植自己开发的的qt4应用程程序,我以自自己编写的wwwjweddm程序为例例:1、设置好主机机开发环境,qt-x11和qtcore安装完毕,可以参考有关文章设置好环境2、开发自己的的应用程序,可可以参考有关关书籍精通通qt4编程qtt c+ GUI编程程3、保证自己的的应用程序在在主机上编译译通过,特别别是在QVFFB中使用qtccore的库库编译通过;4、开始交叉编编译,首先设设置好QT/em

19、beddded ffor arrm的库路径径,具体如下下:可以根据据自己的具体体情况修改,在在ARM板上上嵌入式qtt4的库文件件编译过程可可以参考另一一篇文章: HYPERLINK / o Qtopia-core-4.3.4在s3c2410上的交叉编译移植 Qtopia-core-4.3.44在s3c22410上的的交叉编译移移植 HYPERLINK /article/1454969.html http:/articcle/144549699.htmll在主机/rooot目录下面面新建一个文文件 #geedit qqte_ennv,添加如如下内容export QTDIRR=/mntt/nfs

20、/qtcorre434export PATH=$QTDIIR/binn:$PATTHexport LD_LIIBRARYY_PATHH=$QTDDIR/liib:$LDD_LIBRRARY_PPATH需要交叉编译的的时候,重新新开一个终端端,在/rooot目录下下(主机上为为了方便,我我一直采用rroot用户户登陆),先先ls一下,看看文件在不在在,然后#. qte_env /*注注意 . 后面有有一个空格*/这样即设定好了了qte ffor arrm的库路径径,在此终端端下面,进入入要编译的工工程文件路径径下;#cd /mnnt/nfss/qtcoore4344/demooes/wwwjwe

21、dmm#make cclean#qmake projject#qmake#make 如果没出出错即可以生生成一个wwwjwedmm的二进制可可执行文件#ls 拷贝这个wwjjwedm到到开发板上去去,不过我使使用的是qtt4的库太大大,不能移植植到开发板,我我使用nfss挂载的方式式,可以参考考其他文章,如如何建立交叉叉编译环境。连接好主机和开开发板之间的的串口线和网网线,设置好好地址,保证证能启动挂载载,所涉及的的一些内容和和具体事项可可以访问 HYPERLINK /1020791.html htttp:/10207791.httml,参考考相关文章;启动开发板,进进入板载系统统中,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用不同的版版本,编译参参数不一样可可能编译的库库是不一样的的,执行wwwjwedmm程序时会出出现不同大大大小小的错误误,在这里我我交叉编译使使用的qt44的库和我要要nfs挂载

23、载的库是同一一个库路径,保保证编译以及及在arm板板上执行文件件是不出现错错误。mini24440 qt44 移植(转转+自己添加加) HYPERLINK /cgy136652/blog/static/36168728200932410649487/# l # LInux环境境搭建与设置置 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根文件,因因此省了很大大一部分力气气自己去裁剪剪,但是也有有很大的缺陷陷就是:本身身就对内核不不熟悉,现在在跳过了这一一步,就更加加不理解了。以以后还是要补补上来。 我做的时候现在在fc8下试试过,第一次次是配置的时时候“The ttslib functtionallity ttest ffailedd!”错误 但是不明白原因因的,我是按按照下面的配配置来的还是是出问

25、题了。去掉后根据./confiigure -h 的提提示配置完成成,gmakke到某处时时,错误中断断。试了几次次都是这样也许是我的fcc8并非完全全安装吧。最最后换到了亲亲爱的RH99.0下,按按照下面的指指示编译成功功。不过还有有个现象就是是在fc8下下安装qt-x11可以以成功,RHH9.0下安安装qt-xx11就失败败了。可能是是GCC版本本的问题了。在在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 /生生成瘦身应用用程序和库 2.安装armm-linuux-gccc-3.4.1.tarr.bz2 在根目目录下解压,解解压后的默认认目录在/uusr/loocal/aarm/3.4.1 设置环环境变量,运运行命令: 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的安安装目录设置置为根目录下下的/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的目录录设置,否则则会出现“The ttslib functtionallity ttest ffailedd!”错误 ./make make innstalll cd exammple/qqws/moousecaalibtrrationn qmake &makee (生成mmouseccalibttratioon可执行文文件,后面需需要将其拷贝贝到根文件中中)(这一步实现时时有问题,可可能是环境变变量没设置好好)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 (据说是tts.connf的大小有有限制,所以以必须裁剪,是是具体情况而而裁剪)将里面的第二条条语句(#mmo

32、dulee_raw inoutt)前面的“#”去掉,否则则后面触摸屏屏将不能使用用 cd . mkdir mmini24440 (这这里将minni24400作为了qppe目录,实实现GUI程程序)cd minii2440 因为我的flaash有644M,为了方方便,将QTT4.4.33的lib文文件夹全部拷拷贝过来,但但是要删除ffonts内内除了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可执行文文件 ./mkyafffsimaage rooot_deefaultt roott.yafff2 得到根文件rooot.yaaff2,如如果要看一下下大小,可以以执行 ll roott.yafff2 -h 这样可以将rooot.yaaff2烧到到板子

34、上去了了。 在板子上运行mmouseccalibttratioon的时候没没有出现什么么错误,可以以正确的显示示输入的汉字字 目前在板子上运运行的时候存存在一定的问问题:进入ttslib运运行ts_ccalibrrate,总总是提示tss_openn: No such file or diirectoory,这个个问题一直没没有解决,留留在后面解决决。 在板子上运行的的时候环境变变量如下: (设置环境境变量)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 将上面的配配置写成个脚脚本文件,开开机时在初始始化中开启就就行了。或者直接写到/etc/pprofille 里面就就可以实现开开机启动设置置变量了。要是在板子上运运行的时候提提示缺少某些些文件的时候候,就去在PPC机上的llinux下下寻找,需要要主要的是看看若是提示缺缺少的文件是是以个链接文文件时,需要要把链接对象象也拷入 我在运行的时候候缺少一个llibrt.so.1(具具体记不得了了,好像是这这个)的文件件,我的办法法是把/ussr/loccal/arrm/3.44.1/arrm-linnux/liib下的该文文件和其链接接对象拷贝过过来

37、放在板子子里的libb中,就okk了!整理了一下我移移植QTE的的一些步骤,此此类网上很多多,我不保证证我的方法是是最好的,我我也不会把每每一步做什么么写得很清楚楚。我所想要分享的的是我的经验验,而不是方方法。一些环境busyboxx 1.144.1qt-embeedded-linuxx-opennsourcce-srcc-4.5.1tslib 11.4gcc verrsion 4.3.22 (Souurceryy G+ Lite 2008qq3-72)构建一个新的根根文件系统目目录,路径为为/root/rrootfss1.busybbox的编译译安装相信这一步大家家都非常熟悉悉啦,在官网网下

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这项一定要选上上,不然设置置/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 ./当然,如果这一一步你不是很很清楚,也可可以配置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库文件即即可放在目标标文件系统的的/usr/lib下,而不是默认认/usr/locall/Trollltechh/QtEmmbeddeed-4.55.1 这个个很深的目录录# make# cp liib/* /root/rootffs/usrr/lib -rd 将QTE库库文件拷贝到到根文件系统统的目录# cp plluginss /rooot/roootfs/uusr -rrd 将QTTE插件目录录拷贝到根文文件系统的目目录4.根文件系统统的设置这时/roott/roottfs/ussr下应该有有 b

43、in etc iincludde libb sbinn目录tslib生成成的etc目目录,包含一一个tsliib的配置文文件 ts.conf,编编辑此文件,去去掉moduule_raaw inpput前的注注释# mv ettc ./ 移动到rrootfss的根目录创建rootffs的其他目目录,添加eetc目录下下的其他文件件,拷贝tooolchaain下的库库文件,这不不是本文讨论论的地方关键的几处操作作进行一次清理操操作#arm-liinux-sstrip lib/*.so#arm-liinux-sstrip usr/llib/*.so编辑etc/pprofille,添加以以下内容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程序试试试看。 说明:以上笔记记来自一位叫叫长风的网友友。在这里我特别的的针对你的情情况说明一下下:你应该是有一个个能用的文件件系统了。这时候把你交叉叉编译(这时时候已经安装装在你的pcc上了)的库库搬到你的板板子上就行了了。比如默认认的是这个路路径:/ussr/loccal/Trrollteech/QttEmbeddded-44.5.0同时在你的板子子上建立这么么个路径,把把这个目录下下的lib全全部复制到你你的板子的这这个路径。顺顺便在上述的的这个路径复复制一些例程程(在同目录录的demoos和exaampless)就在可个个进行测试了了。另

46、外如果要用触触摸屏的话,认认真看上述网网友的笔记。 在这里就不不着重讲解 QT的发展展和里面细节节的内容,针针对嵌入式llinux系系统来说,使使用一种GUUI是很常见见的,那么首首先就涉及移移植的问题,只只有再移植好好的情况下再再开发自己的的产 品。当当然这个步骤骤不是死的,但但移植确实是是要做的,还还要做好,过过程有的时候候也不是很容容易的。今天天我就在s33c24100的平台上移移植了QT44,然后把移移植出现 的的问题记录了了下来,仅仅仅做个参考。1.开发平台:ubuntu 81.0,交叉编译器版本3.4.5(arm-linux-gcc),qt-embedded-linux-opens

47、ource-src-4.4.3.tar.gz。2.目标平台:s3c2410,320*240触摸屏 ,linux-,u-boot-1.3.43.移植步骤如下:(1)首先配置linux内核,支持LCD驱动,然后点亮你的屏,并且支持framebuffer,具体的内核配置如下: Device Drivers - Graphics support - Support for frame buffer devices - S3C2410 LCD framebuffer support 当然里面还涉及一些细节,这里就不一一说了,如果大家这块有问题,可以提出来!(2)如果你想支持USB鼠标和USB键盘,只需配

48、置内核既可: Device Drivers - * HID Devices - USB Human Interface Device (full HID) support (3)编译内核进行测试。(4)接下来我们在以上工作的基础上开始移植QT4。首先下载源码:ftp:/ftp.trolltech.no/qt/source/qt-embedded-linux-opensource-src-4.4.3.tar.gz,放在你普通用户的一个目录,比如/home/yoyoili/qt4_port.解压.(5)进入解压好的目录。(6)然后就是很关键的配置,QT4的移植是通过配置来是否支持某种特性,比如op

49、enssl等等。那么根据你自己的需求呢进行相应的配置就可以了,这里参考网站的一篇文章进行了配置,具体如下:./configure -prefix /home/yoyoili/qt4_port/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 -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这里我没有去实现触摸屏的校准,由于时间的问题,以后陆续补充完整,如果支持触摸屏在加一个:-qt-mouse-tslib。这个过程如果涉及很多问题,一般都是你的系统缺少了某些库的问题,我的ubuntu 8.10相应的库都安装的比较齐全,没有错误,如果你是fedroa,只需要完全安装,就不会有什么问题,这个是验证过的!(7) 然后就是make & make install,编译和安装了,如果好的话,就会在你的安装目录,也就是 /home/yoyoili/qt4_port/qt/build 有相应的如下目录:bin include lib m

52、kspecs plugins translations,大家可以看看里面的内容。这里我们关心的是一个lib,就是库文件,以后交叉编译好的程序在板子上跑起来以后都需要这些库。把 所需要的库拷贝到开发板的相应的目录即可,这里比如:cp /home/yoyoili/qt4_port/qt/build/lib/libQt* /home/yoyoili/source/rootfs/home/qt/build/lib,当然有的库你可以不需要拷贝的。(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下面 ,当然后面就是我们开发板根文件系统的目录)(9)测试,我们用源码自带的程序来进行测试,比如在源码的example里有很多,你只需qmake & make就可以了,然后把可执行文件拷贝开发板上用的根文件系统。(10)设置相应的环境变量,这个环境变量是给开发板使用的,不是给你的PC机!具体如下: 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 / (否则字体无法显示) 当然如果你用触摸屏还有相关的设置,你也需要在这里添加!(11)运行我们的程序:./test -qws -fn /home/qt/build/fonts/wenquanyi_160_75.qpf然后你的屏上就有了显示。(12)然后你可以在开发板上插上你的USB鼠标就可以来操作这个小QT程序了。(13)如果你想玩键盘,这样有意思:设 置你的console=tt

55、y0既可以操作你的开发板了,你就可以玩命令了,那么这个console的参数的指定有两种方法,一个可以通过u-boot传 递,这里比如:setenv bootargs root=/dev/nfs nfsroot=10:/home/yoyoili/source/rootfs ip=20 init=/linuxrc console=tty0,另一个就是通过内核,你只需配置内核既可以:具体如下:Boot options - (root=/dev/nfs nfsroot=:/home/yoyoili/source/rootfs ip= init=/linuxrc console=tty0)!(14)这里

56、说一下可能出现的问题:1.在编译你的QT程序的时候会有一个collect错误,应该是连接的qt4的库不是arm交叉编译工具编译的,两者连接有冲突。在中去掉对qt4库的连接即可,增加一行CONFIG -= qt,即可去掉。2.如果出现这个问题:/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.当然你可以用很多工具来编译你的程序,比如qtcreator,kdevelop!首先我们要知道道的是Qt平平台有Pc开开发平台,(以以本人所装的的Redhaat9linnux/Qtt4.3.55/arm-3.4.11版本为例)一、Qt

58、嵌入式式开发平台的的建立概述:Qt嵌入入式开发平台台包括:1、Qt-X111开发平台台:(即为我我们平时开发发Qt应用程程序时使用的的系统平台)。2、QtopiiaCoree-4.3.5开发平台台(即fraamebufffer):该平台可以以让Qt程序序在pc机上上模拟在嵌入入式平台的运运行情况,一一般在QtoopiaCoore上模拟拟运行成功后后才,进行交交叉编译。3、QtopiiaCoree-4.3.5-armm交叉编译平平台:在此平平台下编译通通过的Qt程程序就可以移移植到armm板上运行了了。 step1: 建立Pcc开发平台(xx11、reedhat99的桌面就属属于X11): 下载

59、Qtt4.3.55pc开发包包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小时 安装好后后,系统默认认安装在/uusr/loocal/TTrollttech/QQt-4.33.5目录下下 检查环境境变量: #whiich qmmake step2: 建立QttopiaCCore-44.3.5编编译平台(此此时编译器仍仍然用的是默默认的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表示不需要要认证,否则则会安装过程程中一直叫你你输入yess确认 #makke insstall /此过程需要要3-8个小小时 安装完成成后usr目目录多了一个个文件夹/uusr/loocal/T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论