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

下载本文档

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

文档简介

1、QT4移植到ARM9开发板1 编译qte1 从 下载源代码,选择开源版本(非商业版本),选择Qt libraries 4.5 for embedded linux(128M)2 在源代码目录下执行:3 ./configure embedded arm -xplatform qws/linux-arm-g+ -no-qt3support -qt-mouse-linuxtp 4 在redhat9.0环境需要作一些修改才能编译通过:5 ln -s /usr/kerberos/include/com_err.h /usr/include/6 ln -s /usr/kerberos/include/pr

2、ofile.h /usr/include/7 ln -s /usr/kerberos/include/krb5.h /usr/include/8 vi src/gui/text/qfontengine_ft.cpp, 注释掉710行9 make (时间4个小时左右)10 make install2编译busybox1.13.41 从2 修改Makefile CROSS_COMPILE=arm-linux-3 Make menuconfig选择动态编译,默认配置保存即可4 如果在Redhat2.4虚拟机上编译,需需修改networking/interface.c添加宏定义#define ARPH

3、RD_INFINIBAND 325. make all install(使用3.4.1编译器)3建立配置文件1 进入_install目录2 mkdir dev lib tmp proc3 cd dev 4 mknod fb0 c 29 0 建立framebuffer设备文件5 mknod ts0 13 128 建立触摸屏设备文件6 mknod console c 5 17 mknod tty0 c 4 08 mknod tty1 c 4 19 mknod tty2 c 4 2 10 mknod tty3 c 4 311 mknod tty4 c 4 412 cd lib13 cp arf 3.

4、4.1/arm-linux/lib/* .14 cp arf qt-embedded-linux-opensource-src-4.5.1/lib/* .15 应用测试程序拷贝到开发板根目录16 cp qt-embedded-linux-opensource-src-4.5.1/demos/deform/deform .注:命令中引用的路径为相对路径4运行QTE测试程序1 两种方式2 可以用mkcramfs将busybox的_install目录做成文件系统镜像,然后下载3 可以用NFS挂载4 ./deform qws 屏幕看结果我发现做出来的东西然后写下来一起分享是很快乐的事,哈哈,越写越上瘾

5、了,但毕竟精力有限,干的也比较少,时间总感觉不够用。所以干点写点,还是老话大部分来自网上,里面我就多罗嗦两句。好了不多说了,接着上次触摸屏驱动移植开始写,上次我们把触摸屏给移植了,怎么能用实践来检验呢,来看看我的QT4程序是否能通过触摸屏就可以控制呢,就这个问题我做了一些工作。老样子介绍系统:1.主机系统:ubuntu 8.10 交叉编译器3.4.5 u-boot-1.3.4 linux-2.目标系统:s3c24103.首先要让触摸屏很好的工作就先去做校准的工作,这里我们用tslib-1.4,具体的移植过程如下:(1)得到源码包tslib-1.4.tar.gz,上网一搜索就很多

6、,具体就不说了。(2)$cd tslib$export PREFIX=/home/yoyoili/tslib(这个就是tslib编译以后的安装目录)$export CC=arm-softfloat-linux-gnu-gcc$./autogen.sh$echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache$./configure -host=arm-linux -prefix=$PREFIX -cache-file=arm-linux.cache$make $make install这样在/home/yoyoil

7、i/tslib下面就是我们交叉编译tslib以后产生的必要的文件,主要是头文件和库文件,在移植QT4的时候需要这些文件。(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

8、是否好用了,首先设置环境变量,在开发板上设置:$export TSLIB_ROOT=/home/yoyoili/tslib$export TSLIB_TSDEVICE=/dev/event0$export LD_LIBRARY_PATH=/home/yoyoili/tslib/lib:$LD_LIBRARY_PATH$export QWS_SIZE=320x240$export TSLIB_FBDEVICE=/dev/fb0$export TSLIB_PLUGINDIR=/home/yoyoili/tslib/lib/ts$export TSLIB_CONSOLEDEVICE=none$exp

9、ort TSLIB_CONFFILE=/home/yoyoili/tslib/etc/ts.conf$export 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程序通过

10、触摸屏来控制必须有它的。(6)接下来我们就开始移植我们QT4了,这个我们还是基于以前写的那个QT4移植文档,具体可以看我以前的日志,源码包还是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 =/ho

11、me/yoyoili/tslib/lib也就是指定了交叉编译好的tslib的头文件和库的路径而已,然后就开始配置 ./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

12、 -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

13、-kbd-usb  -confirm-license  -no-armfpa -no-feature-QWS_CURSOR -qt-mouse-tslib make如果出现错误,可以重新关掉终端,然后重新解压QT4包,再配置和编译一下。make install这样我们的/home/yoyoili/source/qt/build就有了我们的QT4的东西了,主要是库文件,在开发板上创建/home/yoyoili/source/qt/build/lib,fonts目录,拷贝相应的库文件到开发板的/home/yoyoili/source/qt/build/lib目录下。libQtC

14、ore.so,libQtGui.so.4,libQtNetwork.so.4。向开发板的/home/yoyoili/source/qt/build/fonts/拷贝unifont_160_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 TS

15、LIB_TSDEVICE=/dev/event0export LD_LIBRARY_PATH=/home/yoyoili/tslib/lib:/home/yoyoili/source/qt/build/lib:$LD_LIBRARY_PATHexport QWS_SIZE=320x240export QTDIR=/home/yoyoili/source/qt/buildexport TSLIB_FBDEVICE=/dev/fb0export TSLIB_PLUGINDIR=/home/yoyoili/tslib/lib/tsexport TSLIB_CONSOLEDEVICE=noneexpo

16、rt QT_QWS_FONTDIR=/home/yoyoili/source/qt/build/fontsexport TSLIB_CONFFILE=/home/yoyoili/tslib/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  /判断是否有校准文件,如果

17、没有,要校准,如果有不用校准!./demo -qws &最近一直在试验如何把自己编译的 qt4 / qtopia4 应用程序 移植 到 ARM开发板上去,今天(2008年11月14日星期五)终于把这条路子走通了,感觉一下子轻松了很多,可以舒一口气了,值得庆祝!以后的事虽很多,但总算心里有点底了,后面的任务应该是如何完善自己开发的系统程序,添加必要的功能。 如何在arm开发板中移植自己开发的qt4应用程序,我以自己编写的wwjwedm程序为例:1、设置好主机开发环境,qt-x11和qtcore安装完毕,可以参考有关文章设置好环境2、开发自己的应用程序,可以参考有关书籍精通qt4

18、编程qt c+ GUI编程3、保证自己的应用程序在主机上编译通过,特别是在QVFB中使用qtcore的库编译通过;4、开始交叉编译,首先设置好QT/embedded for arm的库路径,具体如下:可以根据自己的具体情况修改,在ARM板上嵌入式qt4的库文件编译过程可以参考另一篇文章: Qtopia-core-4.3.4在s3c2410上的交叉编译移植 在主机/root目录下面新建一个文件 #gedit qte_env,添加如下内容export QTDIR=/mnt/nfs/qtcore434export PATH=$QTDIR/bin:$PATHexport LD_LI

19、BRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH 需要交叉编译的时候,重新开一个终端,在/root目录下(主机上为了方便,我一直采用root用户登陆),先ls一下,看文件在不在,然后#. qte_env /*注意 . 后面有一个空格*/这样即设定好了qte for arm的库路径,在此终端下面,进入要编译的工程文件路径下;#cd /mnt/nfs/qtcore434/demoes/wwjwedm#make clean#qmake project#qmake#make 如果没出错即可以生成一个wwjwedm的二进制可执行文件#ls 拷贝这个wwjwedm到开

20、发板上去,不过我使用的是qt4的库太大,不能移植到开发板,我使用nfs挂载的方式,可以参考其他文章,如何建立交叉编译环境。连接好主机和开发板之间的串口线和网线,设置好地址,保证能启动挂载,所涉及的一些内容和具体事项可以访问启动开发板,进入板载系统中,rootutu-linux# mount -t nfs 00:/mnt/nfs /mnt/nfs -o nolockrootutu-linux# cd /mnt/nfs/qtcore434/demos/wwjwedmrootutu-linux wwjwedm# ./wwjwedm qws既可以在板子上启动自己编译的wwjwed

21、m程序;  *注意:qt4用不同的版本,编译参数不一样可能编译的库是不一样的,执行wwjwedm程序时会出现不同大大小小的错误,在这里我交叉编译使用的qt4的库和我要nfs挂载的库是同一个库路径,保证编译以及在arm板上执行文件是不出现错误。mini2440 qt4 移植(转+自己添加)LInux环境搭建与设置   2009-04-24 10:06   阅读541   评论1   字号: 大大  中中  小小      

22、60;   由于mini2440的光盘里自带一个root_default.tgz根文件,因此省了很大一部分力气自己去裁剪,但是也有很大的缺陷就是:本身就对内核不熟悉,现在跳过了这一步,就更加不理解了。以后还是要补上来。 我做的时候现在fc8下试过,第一次是配置的时候“The tslib functionality test failed!”错误 但是不明白原因的,我是按照下面的配置来的还是出问题了。去掉后根据./configure -h 的提示配置完成,gmake到某处时,错误中断。试了几次都是这样也许是我的fc8并非完全安装吧。最后换到了亲爱的RH9.0下,按照下面的指示

23、编译成功。不过还有个现象就是在fc8下安装qt-x11可以成功,RH9.0下安装qt-x11就失败了。可能是GCC版本的问题了。在RH9.0下我用的是tslib-1.31.编译tslib-1.4 (这部分很好ts-lib的编译还算顺利了)     解压到/home下     #./autogen.sh    #./configure -prefix=/home/duancp/mytslib/ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes (可以先

24、生成个cache文件)    #make     #make install-strip /生成瘦身应用程序和库 2.安装arm-linux-gcc-3.4.1.tar.bz2     在根目录下解压,解压后的默认目录在/usr/local/arm/3.4.1     设置环境变量,运行命令:     vi /etc/profile     加入 export PATH=/usr/local/arm/3.4

25、.1/bin:$PATH 3.编译qt-embedded-linux-opensource-src-4.4.3.tar.gz tar zxf qt-embedded-linux-opensource-src-4.4.3.tar.gzcd qt-embedded-linux-opensource-src-4.4.3 (我的QT的安装目录设置为根目录下的/minin2440) ./configure -prefix /mini2440  -release -shared -fast -pch -no-qt3support -qt-sql-sqlite -no-libtiff -no-li

26、bmng -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 -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama -no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g+

27、-embedded arm -depths 16 -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb -qt-kbd-usb -confirm-license -qt-mouse-tslib -I/home/duancp/mytslib/include -L/home/duancp/mytslib/lib 上面的红色部分必须让找前面的tslib的目录设置,否则会出现“The tslib functionality test failed!”错误 ./make make install cd example/qws/

28、mousecalibtration qmake &&make (生成mousecalibtration可执行文件,后面需要将其拷贝到根文件中)(这一步实现时有问题,可能是环境变量没设置好)4.制作根文件 我的工作目录是在根文件下,首先将root_default.tgz拷贝到根目录下,加压,生成root_default cd /root/root_default mkdir tslib cd tslib 为了方便,将编译的tslib下的bin、etc、lib文件夹全部拷贝过来 (拷贝tslib支持库,我自己的理解了)cp -a /home/duancp/mytslib/lib .

29、/ cp -a /home/duancp/mytslib/bin ./ cp -a /home/duancp/mytslib/etc ./ cd etc vi ts.conf (据说是ts.conf的大小有限制,所以必须裁剪,是具体情况而裁剪)将里面的第二条语句(#module_raw inout)前面的“#”去掉,否则后面触摸屏将不能使用 cd . mkdir mini2440 (这里将mini2440作为了qpe目录,实现GUI程序)cd mini2440 因为我的flash有64M,为了方便,将QT4.4.3的lib文件夹全部拷贝过来,但是要删除fonts内除了wenquanyi_120

30、_50.qpf 之外的其他文件,否则太大 cp -a /mini2440/lib ./ rm -rf fonts mkdir fonts cp -a /mini2440/lib/fonts/wenquanyi_120_50.qpf fonts   将前面编译的QT的触摸屏自带程序拷贝过来 cp -a /*/example/qws/mousecalibtration/mousecalibtration ./ cd /root 解压mkyaffsimage.tgz,得到mkyaffsimage可执行文件 ./mkyaffsimage root_default root.yaff2 得到根

31、文件root.yaff2,如果要看一下大小,可以执行 ll root.yaff2 -h 这样可以将root.yaff2烧到板子上去了。 在板子上运行mousecalibtration的时候没有出现什么错误,可以正确的显示输入的汉字 目前在板子上运行的时候存在一定的问题:进入tslib运行ts_calibrate,总是提示ts_open: No such file or directory,这个问题一直没有解决,留在后面解决。 在板子上运行的时候环境变量如下: (设置环境变量)export QTDIR=/mini2440export LD_LIBRARY_PATH=$QTDIR/lib:$OPI

32、EDIR/libexport PATH=$QTDIR/lib:$OPIEDIR/bin:$PATHexport QWS_MOUSE_PROTO=tslib:/dev/input/event0export TSLIB_ROOT=/tslibexport TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport TSLIB_CONFFILE=/tslib/etc/ts.confexport TSLIB_FBDEVICE='/dev/fb0'export QWS_KEYBOARD=&#

33、39;LIRC:/dev/lircd'   将上面的配置写成个脚本文件,开机时在初始化中开启就行了。或者直接写到/etc/profile 里面就可以实现开机启动设置变量了。要是在板子上运行的时候提示缺少某些文件的时候,就去在PC机上的linux下寻找,需要主要的是看若是提示缺少的文件是以个链接文件时,需要把链接对象也拷入 我在运行的时候缺少一个librt.so.1(具体记不得了,好像是这个)的文件,我的办法是把/usr/local/arm/3.4.1/arm-linux/lib下的该文件和其链接对象拷贝过来放在板子里的lib中,就ok了!整理了一下我移植QTE的一些步骤,此类

34、网上很多,我不保证我的方法是最好的,我也不会把每一步做什么写得很清楚。我所想要分享的是我的经验,而不是方法。一些环境busybox 1.14.1qt-embedded-linux-opensource-src-4.5.1tslib 1.4gcc version 4.3.2 (Sourcery G+ Lite 2008q3-72)构建一个新的根文件系统目录,路径为/root/rootfs1.busybox的编译安装相信这一步大家都非常熟悉啦,在官网下载最新版。以下是我修改的几处地方Busybox Settings -> Build Options -> (arm-linux-)Cro

35、ss Compiler prefixBusybox Settings -> Installation Options ->Dont't use /usrBusybox Settings -> Installation Options ->(/root/rootfs) BusyBox installation prefixBusybox Settings ->Busybox Library Tuning ->* Fancy Shell prompts这项一定要选上,不然设置/etc/profile 中PS1变量不生效# make;make instal

36、l2.tslib的编译安装# ./autogen.sh# ./configure -prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes# make;make install朋友们不要奇怪,安装目录的确是这个 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/好处就是在编译QTE时,不用指定tslib的头文件和库文件。将来编译其他需要链接tslib的

37、程序时,也不需要指定。在做这一步前,需要做一个目录链接在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/目录下# ln -s ././usr/include ./当然,如果这一步你不是很清楚,也可以配置tslib安装在你指定的目录($tslib),到时候配置QTE时 -I/($tslib)/include -L/($tslib)/lib安装tslib到rootfs# ./configure -prefix=/root/rootfs/usr/ -host=arm-linux ac_cv_func_malloc_0_nonnu

38、ll=yes# make install3.QTE的编译与安装最基本的配置# ./configure -prefix /usr -embedded arm -xplatform qws/linux-arm-g+ -depths 16 -qt-mouse-tslib-prefix /usr 使用这个配置,编译后的QTE库文件即可放在目标文件系统的/usr/lib下,而不是默认/usr/local/Trolltech/QtEmbedded-4.5.1 这个很深的目录# make# cp lib/* /root/rootfs/usr/lib -rd 将QTE库文件拷贝到根文件系统的目录# cp pl

39、ugins /root/rootfs/usr -rd 将QTE插件目录拷贝到根文件系统的目录4.根文件系统的设置这时/root/rootfs/usr下应该有 bin etc include lib sbin目录tslib生成的etc目录,包含一个tslib的配置文件 ts.conf,编辑此文件,去掉module_raw input前的注释# mv etc ./ 移动到rootfs的根目录创建rootfs的其他目录,添加etc目录下的其他文件,拷贝toolchain下的库文件,这不是本文讨论的地方关键的几处操作进行一次清理操作#arm-linux-strip lib/*.so#arm-linux

40、-strip usr/lib/*.so编辑etc/profile,添加以下内容export QWS_MOUSE_PROTO=Tslib:/dev/event0export TSLIB_CONSOLEDEVICE=noneexport TSLIB_FBDEVICE=/dev/fb0export TSLIB_TSDEVICE=/dev/event0export TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_CONFFILE=/etc/ts.confexport TSLIB_PLUGINDIR=/usr/lib/ts好了,mkyaffs2image 制作镜像

41、,烧写镜像,启动ts_calibrate校验触屏,运行一个qte程序试试看。 说明:以上笔记来自一位叫长风的网友。在这里我特别的针对你的情况说明一下:你应该是有一个能用的文件系统了。这时候把你交叉编译(这时候已经安装在你的pc上了)的库搬到你的板子上就行了。比如默认的是这个路径:/usr/local/Trolltech/QtEmbedded-4.5.0同时在你的板子上建立这么个路径,把这个目录下的lib全部复制到你的板子的这个路径。顺便在上述的这个路径复制一些例程(在同目录的demos和examples)就在可个进行测试了。另外如果要用触摸屏的话,认真看上述网友的笔记。  在这里就不

42、着重讲解 QT的发展和里面细节的内容,针对嵌入式linux系统来说,使用一种GUI是很常见的,那么首先就涉及移植的问题,只有再移植好的情况下再开发自己的产 品。当然这个步骤不是死的,但移植确实是要做的,还要做好,过程有的时候也不是很容易的。今天我就在s3c2410的平台上移植了QT4,然后把移植出现 的问题记录了下来,仅仅做个参考。1.开发平台:ubuntu 81.0,交叉编译器版本3.4.5(arm-linux-gcc),qt-embedded-linux-opensource-src-4.4.3.tar.gz。2.目标平台:s3c2410,320*240触摸屏 ,linux-2.6.26.

43、5,u-boot-1.3.43.移植步骤如下:(1)首先配置linux内核,支持LCD驱动,然后点亮你的屏,并且支持framebuffer,具体的内核配置如下:    Device Drivers -> Graphics support -> <*> Support for frame buffer devices ->                   

44、                                         <*>   S3C2410 LCD framebuffer support 当然里面还涉及一些细

45、节,这里就不一一说了,如果大家这块有问题,可以提出来!(2)如果你想支持USB鼠标和USB键盘,只需配置内核既可:      Device Drivers -> * HID Devices ->    <*>   USB Human Interface Device (full HID) support (3)编译内核进行测试。(4)接下来我们在以上工作的基础上开始移植QT4。首先下载源码:ftp:/ftp.trolltech.no/qt/source/qt-embedded-li

46、nux-opensource-src-4.4.3.tar.gz,放在你普通用户的一个目录,比如/home/yoyoili/qt4_port.解压.(5)进入解压好的目录。(6)然后就是很关键的配置,QT4的移植是通过配置来是否支持某种特性,比如openssl等等。那么根据你自己的需求呢进行相应的配置就可以了,这里参考网站的一篇文章进行了配置,具体如下:./configure -prefix /home/yoyoili/qt4_port/qt/build    /指定安装的目录,与开发板上运行的目录一致-release -shared -fast -pch -no-qt3su

47、pport -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 -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm-no-xinerama -no-xshape -no-separate-de

48、bug-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这里我没有去实现触摸屏的校准,由于时间的问题,以后陆续补充完整,如果支持触摸屏在加一个:-qt-mouse-tslib。这个过程如果涉及很多问题,一般都是你的系统缺少了某些库的问题,我的ubuntu 8.10相应的库都安装的比较齐全,没有错误,如果你是fedroa,只

49、需要完全安装,就不会有什么问题,这个是验证过的!(7) 然后就是make && make install,编译和安装了,如果好的话,就会在你的安装目录,也就是 /home/yoyoili/qt4_port/qt/build 有相应的如下目录:bin include lib mkspecs plugins translations,大家可以看看里面的内容。这里我们关心的是一个lib,就是库文件,以后交叉编译好的程序在板子上跑起来以后都需要这些库。把 所需要的库拷贝到开发板的相应的目录即可,这里比如:cp /home/yoyoili/qt4_port/qt/build/lib/li

50、bQt* /home/yoyoili/source/rootfs/home/qt/build/lib,当然有的库你可以不需要拷贝的。(8) 然后拷贝显示中文的文泉驿字体,这里比如:cp /home/yoyoili/qt4_port/qt/build/lib/fonts/wenquanyi_160_75.qpf /home/yoyoili/source/rootfs/home/qt/build/fonts (前面的路径就是编译并安装以后的目录,这个字体就是这个目录的lib/fonts下面 ,当然后面就是我们开发板根文件系统的目录)(9)测试,我们用源码自带的程序来进行测试,比如在源码的examp

51、le里有很多,你只需qmake && make就可以了,然后把可执行文件拷贝开发板上用的根文件系统。(10)设置相应的环境变量,这个环境变量是给开发板使用的,不是给你的PC机!具体如下:      export QTDIR=/home/qt/build      export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH /(否则找不到库)      export PATH=$QTDIR/

52、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)如果你想玩键盘,这样有意思:设 置你

53、的console=tty0既可以操作你的开发板了,你就可以玩命令了,那么这个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=192.16

54、8.1.2:/home/yoyoili/source/rootfs ip= init=/linuxrc console=tty0)!(14)这里说一下可能出现的问题:1.在编译你的QT程序的时候会有一个collect错误,应该是连接的qt4的库不是arm交叉编译工具编译的,两者连接有冲突。在中去掉对qt4库的连接即可,增加一行CONFIG -= qt,即可去掉。2.如果出现这个问题:/lib/libQtCore.so: undefined reference to clock_gettim解决的办法就是在Makefile里的LFAGS后添加一个 -lrt就

55、可以。3.有的人用的交叉编译器是用的arm-softfloat-linux-gnu-gcc,所以在make编译的时候老是提示arm-linux-gcc 找不到,解决这个问题的办法很多,一个方法就是重新制作你的交叉编译器,修改arm-softfloat.dat(好像是这个)将里面的TARGET修改 为arm-linux就可以了,另一个方法就是修改QT4源码的mkspecs/qws/linux-arm-g+目录下修改qmake.config 将arm-linux-gcc修改为arm-softfloat-linux-gcc,然后再make就行了。4.当然你可以用很多工具来编译你的程序,比如qtcre

56、ator,kdevelop!首先我们要知道的是Qt平台有Pc开发平台,(以本人所装的Redhat9linux/Qt4.3.5/arm-3.4.1版本为例)一、Qt嵌入式开发平台的建立概述:Qt嵌入式开发平台包括:1、Qt-X11开发平台:(即为我们平时开发Qt应用程序时使用的系统平台)。2、QtopiaCore-4.3.5开发平台(即framebuffer):该平台可以让Qt程序在pc机上模拟在嵌入式平台的运行情况,一般在QtopiaCore上模拟运行成功后才,进行交叉编译。3、QtopiaCore-4.3.5-arm交叉编译平台:在此平台下编译通过的Qt程序就可以移植到arm板上运行了。 s

57、tep1: 建立Pc开发平台(x11、redhat9的桌面就属于X11): 下载Qt4.3.5pc开发包qt-x11-opensource-src-4.3.5.tar.gz #tar xzvf qt-x11-opensource-src-4.3.5.tar.gz #cd Qt-4.3.5 #./configure / #make install /此过程需要3-8小时 安装好后,系统默认安装在/usr/local/Trolltech/Qt-4.3.5目录下 检查环境变量: #which qmake step2: 建立QtopiaCore-4.3.5编译平台(此时编译器仍然用的是默认的gcc)

58、此平台下的安装包原码包和X11平台是一样的,只是configure时配置不同 #tar xzvf qt-x11-opensource-src-4.3.5.tar.gz #cd Qt-4.3.5 #./configure -embedded x86 -qvbf -no-openssl /注意几个选项表示,以qvfb表示 -no-openssl表示不需要认证,否则会安装过程中一直叫你输入yes确认 #make install /此过程需要3-8个小时 安装完成后usr目录多了一个文件夹/usr/local/Trolltech/QtopiaCore-4.3.5就表示安装成功了 step3: QtoptiaCore-4.3.5-arm交叉编译平台的建立(此时不是用系统默认的gcc来编译了) 此平台

温馨提示

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

评论

0/150

提交评论