



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、QT/Embedded3.3.8初步交叉编译的完全整理 beasept发布于 2007-9-09 | 4071 次阅读 字号: 大 中 小 (网 友评论 2 条) 我要评论 作 者:爱尔兰异教徒交叉编译环境:HOST操作系统:Linux-2.6.15-1.2054_FC5GCC版本4.1.0TARGET:mx31开发板(freescale-ARM11平台)交叉编译工具链:arm-none-linux-gnueabi(mx31开发板所提供) gcc-4.1.1Qt/E版本:qt-embedded-fr
2、ee-3.3.8(ps:HOST上已经编译过qt-embedded-free-3.3.8gcc 4.1.0)下面的过程是在HOSTPC上已经正确的安装了qt-embedded-free-3.3.8上进行的:交叉编译的详细步骤:第一步:下载qt-embedded-free-3.3.8并解压缩到自定义的目录下。我的目录是tar jxvf qt-embedded-free-3.3.8.tar.bz2自动生成 /root/qt/qt-embedded-free-3.3.8(注意:记得将你在HOST编译好的QT/E的目录下的bin文件里的moc和uic二进制文件copy到我们交叉编译的目录下的bin文件
3、夹里就是 /root/qt/qt-embedded-free-3.3.8)第二步:安装交叉编译工具链这一步取决于你所使用的交叉编译工具链,我的是arm-none-linux-gnueabi(freescale的mx31开发板所提供)安装完成后bin的目录是:/opt/freescale/usr/local/gcc-4.1.1-glibc-2.4-nptl-6/arm-none-linux-gnueabi/bin第三步:配置qmake(即指定交叉编译工具)在mkspecs/qws/下建立arm-none-linux-gnueabi目录cd /root/qt/qt-embedded-free-3.
4、3.8cd mkspecs/qws/mkdir arm-none-linux-gnueabi把mkspecs/qws/linux-arm-g+下的qmake.conf和qplatformdefs.h复制到mkspecs/qws /arm-none-linux-gnueabi目录下然后修改qmake.conf文件,把文件里面的编译器指定为arm-none-linux-gnueabi用arm-none-linux-gnueabi-gcc和arm-none-linux-gnueabi-g+替代以下的arm-linux-gcc 和arm-linux-g+QMAKE_CC = arm-linux-gcc
5、QMAKE_CXX = arm-linux-g+QMAKE_LINK = arm-linux-g+QMAKE_LINK_SHLIB = arm-linux-g+第四步:环境变量的设置export QTEDIR=/root/qt/qt-embedded-free-3.3.8export QTDIR=$QTEDIRexport PATH=/opt/freescale/usr/local/gcc-4.1.1-glibc-2.4-nptl-6/arm-none-linux-gnueabi/bin:$PATHexport PATH=$QTDIR/bin:$PATHexport LD_LIBRARY_PA
6、TH=$QTDIR/lib:$LD_LIBRARY_PATH第五步:config./configure -xplatform qws/arm-none-linux-gnueabi -no-cups -no-stl -no-qvfb -depths 4,8,16,32 -qt-gif -embedded arm -disable-sql注意:在configure的时候会出现一个警告WARNING: Failure to find: .moc/release-static-mt-emb-x86/allmoc.cpp关于这个问题官方已经给出答案,引用如下This is not a problem.
7、It happens everytime Qt/embedded is configured.所以,这个警告可以不预理会。第六步:make 或者是 make sub-srcmake/make sub-src注意:make的时候由于对于qt3的交叉编译工具的gcc版本问题而导致提示如下错误:./include/qstring.h: In member function 'ushort& QChar:unicode()':./include/qstring.h:199: error: cannot bind packed field '(QChar*)this)-&
8、gt;QChar:ucs' to 'ushort&'解决办法:打开src/tools/qglobal.h查看318-326行:# if (defined(_arm_) | defined(_ARMEL_) && !defined(QT_MOC_CPP)# define Q_PACKED _attribute_ (packed)# if _GNUC_ = 3 && _GNUC_MINOR_ >= 4# define Q_NO_PACKED_REFERENCE# endif# endif# if !defined(_EXCEPT
9、IONS)# define Q_NO_EXCEPTIONS# endif修改如下:# if (defined(_arm_) | defined(_ARMEL_) && !defined(QT_MOC_CPP)# define Q_PACKED _attribute_ (packed)# if _GNUC_ = 3 && _GNUC_MINOR_ >= 4# define Q_NO_PACKED_REFERENCE# endif+# if _GNUC_ = 4 && _GNUC_MINOR_ >= 0+# define Q_NO_PAC
10、KED_POINTERS+# endif# endif# if !defined(_EXCEPTIONS)# define Q_NO_EXCEPTIONS# endif打开src/include/qstring.h查看195-199行ushort unicode() const return ucs; #ifdef Q_NO_PACKED_REFERENCEushort &unicode() return *(&ucs); #elseushort &unicode() return ucs; #endif修改如下:ushort unicode() const retur
11、n ucs; #ifdef Q_NO_PACKED_REFERENCEushort &unicode() return *(&ucs); +#elif defined Q_NO_PACKED_POINTERS+ ushort &unicode() ushort& tmp = ucs; return tmp; #elseushort &unicode() return ucs; #endifps:+号表示修改的地方接下来就是make cleanmake 第七步 strip交叉编译成功后在/lib文件夹下生成以下文件:libqte-mt.solibqte-m
12、t.so.3 libqte-mt.so.3.3 libqte-mt.so.3.3.8rootlocalhost lib# ls -llrwxrwxrwx 1 root root 18 09-05 17:25 libqte-mt.so -> libqte-mt.so.3.3.8lrwxrwxrwx 1 root root 18 09-05 17:25 libqte-mt.so.3 -> libqte-mt.so.3.3.8lrwxrwxrwx 1 root root 18 09-05 17:25 libqte-mt.so.3.3 -> libqte-mt.so.3.3.8-rw
13、xr-xr-x 1 root root 7091636 09-07 08:51 libqte-mt.so.3.3.8我们先来查看文件信息:rootlocalhost lib# file libqte-mt.so.3.3.8libqte-mt.so.3.3.8: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), not stripped此时显示的是not stripped,即没有经过strip。rootlocalhost lib# arm-none-linux-gnueabi-strip libqte-mt.so.3.3.8执行strip命令之后我们再次查看文件信息:rootlocalhost lib# file libqte-mt.so.3.3.8 libqte-mt.so.3.3.8: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), stripped此时显示的是stripped,即已经strip。你会发现,strip之后libqte-mt.so.3.3.8发生明显变化的,不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玻璃材料的生物相容性考核试卷
- 核电工程现场施工安全防护设备使用考核试卷
- 木材加工企业的客户关系管理系统考核试卷
- 批发行业互联网转型之路考核试卷
- 康复辅具在康复医学研究方法的革新考核试卷
- 煤炭行业投资风险评价考核试卷
- 文化用化学品在声音记录材料的技术发展考核试卷
- 2025届安徽省界首市下学期高三数学试题二模考试试卷
- 医疗数据要素市场交易权限管理
- 美国发动“对等关税战”的影响
- “条令条例学习月”主题授课课件
- 海洋生态环境监测技术-全面剖析
- 2024年湖北省中学教师招聘考试真题
- 2024年中国资源循环集团有限公司招聘考试真题
- 隧道全断面开挖施工方案
- 卫星科普知识
- 档案管理实务与技能试题及答案2024
- 北京市朝阳区2025届高三一模质量检测一 语文试题(含答案)
- 新教材高中生物选择性必修2课件:1 2 种群数量的变化(人教版)
- 车辆租赁服务保障计划
- 《装配式混凝土建筑》全套教学课件
评论
0/150
提交评论