qte移植 环境变量

发表时间:2009-08-18QtEmbeded移植到达芬奇6441平台 前言: 就移植Qte而言,本菜菜已经是熟练工种了,因此这次移植到达芬奇6441平台,开始并不觉得是非常难的事。但是后来发现国内移植方面资料不多,相关的也只有OMAP方面的,并且工具链及linux的不同,还是生产了很多困难,所以还是写篇文章以帮助后来者。该移植过程采用的NFS来共享根文件系统,如果没有NFS按自己的更改 正文: 先就移植的环境做个简单介绍介绍: 开发板:达芬奇6441芯片组(ARM9 + C64x+) 主机系统:redhat enterprise linux 4 主机编译器:gcc version 3.4.3 20041212 (Red Hat 3.4.3-9.EL4) 交叉编译器:arm_v5t_le-gcc(MontaVista提供) 移植过程: 移植前准备 移植Qt4图形开发库前,首先应获取Qt4对应嵌入式开发的最新源代码。Qt4最新源代码可以在它的官方网站上获得,下载地址为:http://www.qtsoftware.com/downloads。为了开发的便利,在PC上可以使用qvfb来模拟Qt4在嵌入式设备上的运行。同时,为了清楚概念,Qt4图形开发库对应PC桌面开发板命名为Qt4,对应嵌入式设备开发板命名为Qte4。 解压源码包 一般需要获取两个源码包,从官方网站下载完成后,应该有如下两个压缩包: qt-embedded-linux-opensource-src-4.5.2.tar.gz qt-x11-opensource-src-4.5.2.tar.gz 这两个分别对应的是linux下桌面开发的Qt4图形库和对应嵌入式linux设备开发的图形库。使用tar命令来解压这两个源码包,以便进行配置编译开发,过程如下 #tar zxvf qt-embedded-linux-opensource-src-4.5.2.tar.gz #tar zxvf qt-x11-opensource-src-4.5.2.tar.gz 配置编译安装tslib Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。使用tslib可以为Qt4开发的程序提供准备的触摸屏数据,利于程序触摸的定位。 同样,首先应下载获取tslib的源代码,然后解压至指定文件夹,最后安全如下步骤配置编译安装: #./autogen.sh #./configure –prefix=/home/wangc/mytslib/ –host=arm-linux-linux ac_cv_func_malloc_0 _nonnull=yes #make #make install 安装成功后,tslib会安装在mytslib目录中,如果想指定安装目录,在prefix参数后修改安装目录即可。 配置编译Qte4 当准备工作做完以后,Qte4的配置编译就可以开始了,由于Qte4对于嵌入式设备来说,是个很庞大的图形库,因此,需要在参数里进行配置和裁剪。由于交叉工具链与一般的交叉工具链不同,需要修改针对arm平台的编译脚本才能正常进行。 在Qte4的解压目录下,进入mkspecs/qws/linux-arm-g++/目录,打开命名为qmake.conf的文件,在里面配置交叉工具链的选择,将所有的arm-linux-改为arm_v5t_le-就可以指定成达芬奇平台的交叉工具链。 配置Qte4 先根据需要选择参数,选择后,进入源代码解压目录进行配置,步骤如下: #./configure -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-phonon -no-phonon-backend -no-scripttools -no-mmx -no-3dnow -no-sse -no-sse2 -nomake tools -nomake examples -nomake docs -nomake demo -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-usb -no-glib -qt-mouse-tslib -I/home/wangc/mytslib/include -L/home/wangc/mytslib/lib 参数选择中,对于触摸屏应该选择tslib,并且指定tslib的头文件和库文件的目录。 编译Qte4 配置完毕后,就可以编译Qte4,按照如下步骤: #make 编译时间长短视编译机器的性能和配置参数决定,但编译完成后,就可以得到需要的Qte4库文件。 移植Qte4 编译完成后,为了便于日后的开发,应该在PC上安装Qte4,这样就获得了Qte4的qmake工具和相 关文档。安装命令如下: #make install 开发板上要运行Qt4的程序,就应该有相对应的库文件,移植的过程就是把已经交叉编译好的库文件移至到开发板上。开发板可以使用NFS共享根文件系统启动,因此,可以先将库文件拷贝到共享的根文件系统下进行测试。当测试完成后,再将库文件拷贝到开发板上。 移植库文件 按照步骤,首先把Qte4的库文件拷贝到NFS启动的根文件系统,其步骤如下: #cp –f lib/ rootfs/usr/local/Trolltech/QtEmbedded-4.5.0-arm 之所以放入该目录中,是因为这是Qte的默认安装目录,这样可以避免因为路径的不同而产生不必要的问题。 设置环境变量 将根文件拷贝到指定位置后,为了使系统能在运行时获取Qte4库文件位置,应该设置系统的环境变量,配置的环境变量如下: export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-arm export PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/bin:$PATH export QWS_DISPLAY=LinuxFb:/dev/fb/0 export QWS_DISPLAY=”LinuxFb:mmWidth720:mmHeight272:0″ export QWS_SIZE=720×272 export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/lib:$LD_LIBRARY_PATH 第一个参数指定了Qte所在的目录,第二个参数是将Qte所在目录导入环境变量,第三个及第四个参数指定了Qte的绘制设备,第五个参数是将Qte的库文件目录导入环境变量。 可能出现的错误: 移植过程中,由于硬件体系,系统环境的差异,可能会出现错误,因此,要对这些错误逐一分析检查,并解决。 问题一:Root-NFS: Unable to get nfsd port number from server, using default 问题原因:这种情况通常是nfs配置问题,或者是网线 解决方案:看看网线接好没,配置是否正确 问题二:tslib测试程序不可执行 问题原因:查看连接关系后,发现目标平台式为x86 解决办法:原因是交叉编译工具命名规范与普通的不一样,在编译前导入至编译终端即可。 问题三:./findfiles: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory 问题原因:开发板上库文件与PC上交叉编译开发环境库文件不一致 解决方案:该文件在/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/target/usr/lib/目录下,拷贝到开发板/usr/lib目录下即可。 问题四:QScreenLinuxFb::connect: No such file or directory Error opening framebuffer device /dev/fb0 : driver cannot connect Aborted 问题原因:程序默认的帧缓存设备为/dev/fb0,而实际上设备为/dev/fb/0,所以出错显示打不开该设备 解决方案:ln -s /dev/fb/0 /dev/fb0,建立链接,使fb0指向/dev/fb/0后,程序即可顺利运行 具体的问题还是需要根据自己的开发环境来分析解决。 本站所有文章由本站和原作者保留一切权力,仅在保留本版权信息、原文链接、原文作者的情况下允许转载,转载请勿删改原文内容, 并不得用于商业用途。 谢谢合作。 该文章转自:http://www.cuteqt.com/blog/?p=898
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值