




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式图形开发环境的搭建面向FL2440开发板通过最近一段时间对QT/E的学习,发现如何进行软件环境的搭建是一个比较复杂的过程。QT有很多的版本,每种版本的功能和支持软件包都不一样(关于版本的讨论请参阅另外的文档)。下面介绍一下如何安装QTE,请用您足够的信心、耐心和细心,严格按照以下步骤操作。我在最初开始搭建的时候,总是编译不过去,最后发现时我不够细心!希望你不要犯这种操作的错误!在FL2440的手册上,给的实验步骤是存在问题的,在本文档中作了相应的修改。一、准备工作1. 硬件环境A. 主机:x86 系列PC 机。B. 开发板:飞凌FL2440。C. 通讯连接:串口和USB。2. 软件环境A. 主机操作系统:VMware 虚拟机下的Redhat linux 9.0(完全安装) 。B. 开发板操作系统:嵌入式Linux,内核版本为2.6.12。C. 交叉编译器:arm-linux-gcc-2.95.3。D. 通讯方式:虚拟机与主机(Windows XP)使用共享文件夹通讯,主机与开发板使用DNW 通讯。虚拟机与开发板使用NFS通讯3. 相关说明A. 命令:所有以#开头的均为在shell中执行的命令。B. 交叉编译器位置:/usr/local/arm/2.95.3。C. 工作目录:默认为/root/yizhi。D. 脚本注释:均放在命令下一行的圆括号内。4准备所需安装软件包cross-2.95.3.tar.bz2,e2fsprogs-1.40.2.tar.gz,jpegsrc.v6b.tar.gz,libpng-1.2.19-no-config.tar.bz2,zlib-1.2.3.tar.bz2,A. tmake-1.13.tar.gz,用于生成Makefile。B. qt-x11-2.3.2.tar.gz,Qt/X11 软件包,用于生成qvfb 等开发工具。C. qt-embedded-2.3.10-free.tar.gz,Qt/Embedded 软件包,Qt/Embedded 图形库。D. qtopia-free-src-2.2.0.tar.gz,Qt 的PDA 应用框架,可以生成一个Qt 的PDA 程序。QT/E下载地址为:ftp:/ftp.rediris.es/mirror/Qt/source/Tmake下载地址为:/freebies/tmake/5. 建立QTE 开发环境所需要的目录/usr /local/arm /编译器所需要的路径/root/yizhi/root/yizhi/armlib/root/yizhi/arminclude/root/yizhi/qtopia-free-2.2.0*/root/yizhi /libpng-1.2.19*/root/yizhi /zlib-1.2.3*/root/yizhi /e2fsprogs-1.40*/root/yizhi /jpeg-6b*/root/yizhi /qt-2.3.10*/root/yizhi /host以上文件夹是自己建的。注:带“*”文件夹在解压的时候会生成,二、安装交叉编译工具将cross-2.95.3.tar.bz2 放到/usr/local/arm 文件夹下解压,# tar jxvf cross-2.95.3.tar.bz2这个命令会在你的/usr/local/arm/2.95.3 目录下安装arm-linux-gcc 交叉编译程序,然后在PATH 变量中添加一项:export PATH=/usr/local/arm/2.95.3/bin:$PATH测试:# arm-linux-gcc -v /该命令可查看编译器的版本三、使用qvfb 运行基于x86的QT环境(该部分为)1、在目录/root/yizhi目录下解压三个文件#cd /root/yizhi#tar -xzf tmake-1.13.tar.gz#tar -xzf qt-x11-2.3.2.tar.gz#tar -xzf qt-embedded-2.3.10-free.tar.gz2、安装tmake用户可使用普通的解压缩即可,注意要将路径添加到全局变量中去,如下所示:#tar zxvf tmake-1.13.tar.gz#export TMAKEDIR=$PWD/tmake-1.13#export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g+(网页设置,这个路径与下面的不同!待验证)#export PATH=$TMAKEDIR/bin:$PATH2、编写环境变量设置文件step1 #cd /root/yizhi#vi step1在新建的文件中输入以下代码:export TMAKEDIR=/root/yizhi/tmake-1.13export Qt2DIR=/root/yizhi/qt-2.3.2export QtEDIR=/root/yizhi/qt-2.3.10export PATH=$TMAKEDIR/bin:$PATHexport TMAKEPATH=$TMAKEDIR/lib/linux-g+(这个路径与上面安装tmake的路径不同!待验证)export QTDIR=$Qt2DIRexport PATH=$QTDIR/bin:$PATHexport LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH保存退出运行该文件#source step13、安装Qt/X11 2.3.2,配置编译qt-2.3.2(在step1环境下)进入qt-2.3.2目录下#cd /root/yizhi/qt-2.3.2rootroot qt-2.3.2#./configure -no-xftrootroot qt-2.3.2#make将生成的bin/uic文件复制到$QtEDIR/bin目录下(如果该目录存在uic则覆盖原来的uic文件,若不存在该文件夹则新建一个文件夹)即复制到qt-2.3.10/bin下rootroot qt-2.3.2#cp bin/uic $QtEDIR/bin/4、编译qvfb(在step1环境下)进入$QtEDIR/tools/qvfb编译 (使用tmake-1.13的tmake工具进行)rootroot qvfb#$TMAKEDIR/bin/tmake -o Makefile rootroot qvfb#make将生成的qvfb文件复制到$QtEDIR/bin目录中($QtEDIR=/root/yizhi/qt-2.3.10/bin)rootroot qvfb#cp qvfb $QtEDIR/bin5、编译基于x86结构的qt-embedded(即qt-2.3.10)*新建终端*(1)环境变量设置step2文件export TMAKEDIR=/root/yizhi/tmake-1.13export Qt2DIR=/root/yizhi/qt-2.3.2export QtEDIR=/root/yizhi/qt-2.3.10export PATH=$TMAKEDIR/bin:$PATHexport TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g+ (和step1区别)export QTDIR=$QtEDIR (和step1区别)export PATH=$QTDIR/bin:$PATHexport LD_LIBRARY_PATH=$Qt2DIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH运行该文件#source step2(2)进入qt-embedded目录(即qt-2.3.10)进行配置和编译rootroot qt-2.3.10#./configure -no-xft -qvbf -depths 4,8,16,32(这是逗号)rootroot qt-2.3.10#make6、OK,qvbf/qtembedded-x86环境已经搭好,进行自带的demo测试.#cd qt-2.3.10/examples/launcherrootroot launcher#qvfb -width 640 -height 480 &sleep 10上面启动了qvfb虚拟器rootroot launcher#./lanucher -qws上面实现在qvfb中运行一个app了。四、编译QTOPIA所依赖的库文件1、编译libtool(libtool 提供通用的库编译支持)#cd /root/yizhi#tar zxvf libtool-2.2.tar.gz#cd libtool-2.2#./configure -prefix=/usr(为编译 Libtool 做准备)#make(要测试结果,请运行:make check 。)#make install2、在/root文件夹下建立相应的文件夹#cd /root/yizhi#mkdir armlib#mkdir arminclude/mkdir qt-2.3.10#cd qt-2.3.10#mkdir bin#mkdir lib/mkdir include(已经有了)#mkdir man#cd man#mkdir man1#cd /root/yizhi3、解压qtopia-free-src-2.2.0.tar.gz#cd /root/yizhi#tar zxvf qtopia-free-src-2.2.0.tar.gz(有点区别)4、编译e2fsprogs-1.40.2要得到qtopia 所需的二個文件,uuid.h 及libuuid.so。# cd /root/yizhi/ #tar zxvf e2fsprogs-1.40.2.tar.gz#cd /root/yizhi/e2fsprogs-1.40.2设置环境变量# export PATH=/usr/local/arm/2.95.3/bin:$PATH# export CC= /usr/local/arm/2.95.3/bin/arm-linux-gcc# ./configure -enable-elf-shlibs -host=arm-linux -with-cc=/usr/local/arm/2.95.3/bin/arm-linux-gcc -with-linker=/usr/local/arm/2.95.3/bin/arm-linux-ld -prefix=/usr/local/arm/2.95.3/arm-linux# make将e2fsprogs-1.40.2/lib/目录下uuid 的文件夹复制到yizhi/arminclude 下# cp -r /lib/uuid /root/yizhi/arminclude# cp lib/libuuid.so* /root/yizhi/armlib# cp lib/libuuid.a /root/yizhi/armlib5、交叉编译jpeg 库(为qt-embedded添加jpeg库)解压tar zxvf jpegsrc.v6b.tar.gz 到/root/yizhi#cd /root/yizhi#tar zxvf jpegsrc.v6b.tar.gz# cd jpeg-6b设置环境变量# export QTDIR=/root/yizhi/qtopia-free-2.2.0/# export QTEDIR=/root/yizhi/qtopia-free-2.2.0/qtopia/# export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH# export PATH=/usr/local/arm/2.95.3/bin:$PATH# export CC= /usr/local/arm/2.95.3/bin/arm-linux-gcc #cp /usr/share/libtool/config/config.guess /root/yizhi/jpeg-6b#cp /usr/share/libtool/config/config.sub /root/yizhi/jpeg-6b#./configure -enable-shared -enable-static -prefix=/root/yizhi/qt-2.3.10#cp jconfig.doc jconfig.h修改生成的Makefile 文件: #gedit Makefile做如下修改:prefix = /root/yizhi/qt-2.3.10(qt-embeddedd的文件夹路径)CC= /usr/local/arm/2.95.3/bin/arm-linux-gccAR= /usr/local/arm/2.95.3/bin/arm-linux-ar rcAR2= /usr/local/arm/2.95.3/bin/arm-linux-ranlib保存(在你的qt-embedded中建立man/man1文件夹,否则安装jpeg库时会出错)最后:# make# make install lib#cp jpeglib.h jconfig.h jmorecfg.h /root/yizhi/arminclude#cp /root/yizhi/qt-2.3.10/lib/libjpeg.so* /root/yizhi/armlib#cp /root/yizhi/qt-2.3.10/lib/libjpeg.so* /usr/local/arm/2.95.3/arm-linux/lib(把生成的库文件向/usr/local/arm/2.95.3/arm-linux/lib目录中也拷贝一份)通过命令file libjpeg.so查看:libjpeg.so: ELF 32-bit LSB shared object, ARM, version 1 (ARM), not stripped这样的话就说明生成的库是for arm的,类似方法可以用于生成libuuid.so库.6、编译zlib:# cd /root/yizhi#tar zxvf zlib-1.2.3.tar.gz# cd /root/yizhi/zlib-1.2.3设置环境变量# export PATH=/usr/local/arm/2.95.3/bin:$PATH# export LD_LIBRARY_PATH= /usr/local/arm/2.95.3/arm-linux/lib:$LD_LIBRARY_PATH# export CC= /usr/local/arm/2.95.3/bin/arm-linux-gcc# ./configure shared# vi Makefile修改:beginCC=/usr/local/arm/2.95.3/bin/arm-linux-gcc.LDSHARED=/usr/local/arm/2.95.3/bin/arm-linux-gcc -shared-Wl,-soname,libz.so.1CPP=/usr/local/arm/2.95.3/bin/arm-linux-gcc -E.AR=/usr/local/arm/2.95.3/bin/arm-linux-ar rcRANLIB=/usr/local/arm/2.95.3/bin/arm-linux-ranlib.prefix =/usr/local/arm/2.95.3/arm-linux.end保存# make将编译生成的动态库及相关的头文件分别复制到armlib 和arminclude 目录下# cp libz.so* /root/yizhi/armlib# cp *.h /root/yizhi/arminclude# cp *.h /usr/local/arm/2.95.3/arm-linux/include# cp libz.so* /usr/local/arm/2.95.3/arm-linux/lib7、编译libpng 库:将libpng-1.2.19.tar.bz2 解压到/root/yizhi 目录下#cd /root/yizhi#tar zxvf libpng-1.2.19-no-config.tar.gz# cd /root/yizhi/libpng-1.2.19# cp scripts/makefile.linux ./Makefile注意,这里的makefile 不是用./configure 生成,而是直接从scripts/里拷一个# vi Makefile修改:begin.AR_RC=/usr/local/arm/2.95.3/bin/arm-linux-ar rcCC=/usr/local/arm/2.95.3/bin/arm-linux-gccRANLIB=/usr/local/arm/2.95.3/bin/arm-linux-ranlibprefix=/usr/local/arm/2.95.3/arm-linux.end保存# make# cp libpng12.so* /root/yizhi/armlib# cp *.h /root/yizhi/arminclude# cp libpng.a /root/yizhi/armlib8、# cp /root/yizhi/armlib/* /usr/local/arm/2.95.3/arm-linux/lib# cp -r /root/yizhi/arminclude/* /usr/local/arm/2.95.3/arm-linux/include# cp /root/yizhi/qt-2.3.10/lib/* /usr/local/arm/2.95.3/arm-linux/lib# cp /root/yizhi/qt-2.3.10/include/* /usr/local/arm/2.95.3/arm-linux/include9、编译qtopia-2.2.0 得到本机运行版本uic 工具qtopia-2.2.0 版本里面集成了qttmakeqtopia。编译Qt/X11 的唯一目的就是为编译QTE 提供uic(用户接口编译器)以及基于X Windows系统的FrameBuffer 设备模拟器qvfb。解压qtopia-free-src-2.2.0.tar.gz,将qtopia-free-2.2.0 复制到/root/yizhi/host# cd /root/yizhi/host/qtopia-free-2.2.0要生成Makefile# ./configure# make /时间较长#cp /root/yizhi/host/qtopia-free-2.2.0/qt2/bin/uic /root/yizhi/qtopia-free-2.2.0/qt2/bin/ /如果已经有uic 文件则直接拷贝即可五、交叉编译qtopia1、编译修改工作、#vi /root/yizhi/qtopia-free-2.2.0/qtopia/mkspecs/qws/linux-arm-g+/qmake.conf将此行QMAKE_LIBS_QT = -lqte修改为QMAKE_LIBS_QT = -lqte -lpng -lz -luuid -ljpeg、如果想让Qtopia 支持鼠标,需要修改/root/yizhi/qtopia-free-2.2.0/qtopia/src/qt/qconfig-qpe.h 文件,在终端进行如下操作:#vi /root/yizhi/qtopia-free-2.2.0/qtopia/src/qt/qconfig-qpe.h注释如下部分:/*#ifndef QT_NO_QWS_CURSOR#define QT_NO_QWS_CURSOR#endif#ifndef QT_NO_QWS_MOUSE_AUTO#define QT_NO_QWS_MOUSE_AUTO#endif#ifndef QT_NO_QWS_MOUSE_PC#define QT_NO_QWS_MOUSE_PC#endif*/复制文件# cp /root/yuzhi/qtopia-free-2.2.0/qtopia/src/qt/qconfig-qpe.h /root/yizhi/qtopia-free-2.2.0/qt2/src/tools# cd $QPEDIR/src/libraries/qtopia ($QPEDIR=/root/yizhi/qtopia-free-2.2.0/qtopia/)# cp custom-linux-ipaq-g+.cpp custom-linux-arm-g+.cpp# cp custom-linux-ipaq-g+.h custom-linux-arm-g+.h 、将/usr/local/arm/2.95.3/arm-linux/sysinclude/linux/videodev.h 文件中的#include一行注释屏蔽2、设置环境变量,编译及安装设置编译qtopia 的环境变量#cd /root/yizhi/qtopia-free-2.2.0# export QTDIR=/root/yizhi/qtopia-free-2.2.0/qt2# export QPEDIR=/root/yizhi/qtopia-free-2.2.0/qtopia# export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH# export TMAKEDIR=/root/yizhi/qtopia-free-2.2.0/tmake# export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g+# export PATH=/usr/local/arm/2.95.3/bin:$PATH创建交叉编译后的qtopia 文件夹# mkdir /root/yizhi/qtopia生成Makefile 文件# ./configure -qte -embedded -xplatform linux-arm-g+ -qconfig qpe -no-qvfb -depths 8,16,24,32 -no-xft -system-jpeg -system-libpng -system-zlib -gif thread release - I/root/yizhi/arminclude -L/root/yizhi/armlib -lpng -lz luuid -ljpeg qpe -xplatform linux-arm-g+ -edition pda displaysize 640x480 -I/root/yizhi/arminclude -L/root/yizhi/armlib -prefix=/root/yizhi/qtopia(时间较长)编译qtopia# make安装qtopia 的交叉编译环境# make install编译完成以后/root/yizhi 后出现一个qtopia 的目录,在/root/yizhi/qtopia/lib/目录下面看到libqte.so、libqte.so.2 libqte.so.2.3、libqte.so.2.3.12 这四个文件. 这是编译qte的库文件.将所有需要支持的库文件都放到新生成的qtopia/lib 中# cp /root/yizhi/armlib/*.so* /root/yizhi/qtopia/lib现在,您已经将QTE 环境编译成功了,请您继续!注:如果在编译的过程中出错,在重新make前需要先执行make clean,然后再./configure,再执行make的操作。以上的操作,我们已经将QT/E 的嵌入式图形开发环境搭建完成,现在您就可以利用QT/E 开发环境中完备的开发工具进行具体的应用程序的开发了。需要注意的是,您要时刻关注您在交叉编译应用程序时,当前终端窗口中,环境变量是否设置正确。编译安装qtopia-free-2.2.0前要先编译安装qt-embedded-2.3.7,而安装qt-embedded-2.3.7之前要先安装qt-x11-2.3.2,所以,它们的安装顺序是:先安装qt-x11-2.3.2,再安装qt-embedded-2.3.10,最后安装qtopia-free-2.2.0。六、将qtopia挂在到目标板上1、建立宿主机和开发板的通讯以/root/share 为共享文件夹,目标板可通过nfs 来访问这个共享文件夹。将qtopia 复制到共享文件夹/root/share/# cp -r /root/yizhi/qtopia /root/share/设置共享文件夹:、 修改/etc/export 指定/root/share 文件夹为共享可访问的最后一行加上/root/share 192.168.*.* (rw)、关闭防火墙service iptables stop (重启后会失效)启动nfs 服务# service nfs restart (或nfs /etc/rc.d/init.d/nfs start)设置PC 机的ip 地址为00# ifconfig eth0 00 up2、将开发板与PC 机连接好,minicom 下启动开发板板,配置串口的波特率为115200,启动目标板。# minicom检测目标板和PC 机是否建立了连接#ping 00如果建立了连接,进行nfs 挂载# mount 00:/root/share /mnt# cd /mnt/qtopia设置环境变量# export QTDIR=$PWD# export QPEDIR=$PWD# export LD_LIBRARY_PATH=$PWD/lib# export HOME=/etc/tmp帧缓冲设备板子上为/dev/fb/0,但程序默认为/dev/fb0,所以做了一个链,接/dev/fb0 到/dev/fb/0# ln -s /dev/fb/0 /dev/fb0指定鼠标为输入设备# export QWS_MOUSE_PROTO=USB:/dev/input/mouse0运行PDA 之前先杀掉现在板子自带的qpe 程序:# psqpe 的进程号是398,把它kill 掉执行自己编译的qpe=然后:# cd bin# ./qpe出现Tap anywhere on the screen to continue用鼠标点击一下桌面,就进入配置显示使用的语言和所在地区的时区,点击finish 键,这样就可以在显示终端上看到qtopia 桌面环境了。(在我的开发板上没有什么变化)七、编译运行自己的程序(在pc机的qvfb上运行的程序)(1)打开一个终端(不进行环境变量设置),进入自己的源码文件夹/root/yizhi/hello打开designer编辑器,建立工程文件,并生成hello.ui、main.cpp文件.hello#designer(新建工程,把hello.ui、main.cpp文件保存在././hello文件夹中) (2) 利用hello.ui文件生成hello.h、hello.cpp文件.hello#uic hello.ui o hello.h.hello# uic impl hello.h hello.ui o hello.cpp(3)删除hello.ui文件.hello#rm hello.ui(4)运行step2,设置好环境变量环境变量设置step2文件export TMAKEDIR=/root/yizhi/tmake-1.13export Qt2DIR=/root/yizhi/qt-2.3.2export QtEDIR=/root/yizhi/qt-2.3.10export PATH=$TMAKEDIR/bin:$PATHexport TMAKE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地理自然灾害风险管理试题
- 酒店餐饮连锁经营管理方案设计
- 船舶制造行业生产效率提升策略方案
- 农村用地规划管理与实施方案协议
- 心理咨询师专业技能测试
- 品牌授权使用与推广合作协议要点
- 2024-2025学年山西省吕梁市孝义市高二下学期2月开学收心考试地理试题(A卷)(解析版)
- 软件行业软件开发与测试管理方案
- 教育培训机构教学与质量评估协议
- 感恩父母写情的作文(15篇)
- 施工现场视频监控系统施工方案
- (正式版)JTT 1495-2024 公路水运危险性较大工程安全专项施工方案审查规程
- 《征兵入伍应征公民体格检查标准条文释义》
- MOOC 电子技术实习-北京科技大学 中国大学慕课答案
- 切花月季岩棉无土栽培技术
- 2023年教师招考中小学音乐学科专业知识考试真题及答案
- 中心静脉深静脉导管维护操作评分标准
- 2024年-2024五届华杯赛小高年级组试题及答案
- 伤医事件应急预案演练
- XXX手机马达射频干扰问题解决分析过程
- 医院网络信息安全培训
评论
0/150
提交评论