QT4.5.3在海思3520A上移植步骤-修订版

2015年3月29日星期日, 16:59:03

1.首先要保证已经安装了海思的交叉编译器;

#arm-hi  + Tab key to show which toolchainhave been installed

[root@roger]#arm-hi

arm-hisiv100nptl-linux-addr2line  arm-hisiv100nptl-linux-gprof

arm-hisiv100nptl-linux-ar         arm-hisiv100nptl-linux-ld

arm-hisiv100nptl-linux-as         arm-hisiv100nptl-linux-nm

arm-hisiv100nptl-linux-c++        arm-hisiv100nptl-linux-objcopy

arm-hisiv100nptl-linux-c++filt    arm-hisiv100nptl-linux-objdump

arm-hisiv100nptl-linux-cpp        arm-hisiv100nptl-linux-ranlib

arm-hisiv100nptl-linux-g++        arm-hisiv100nptl-linux-readelf

arm-hisiv100nptl-linux-gcc        arm-hisiv100nptl-linux-size

arm-hisiv100nptl-linux-gcc-4.4.1  arm-hisiv100nptl-linux-strings

arm-hisiv100nptl-linux-gccbug     arm-hisiv100nptl-linux-strip

arm-hisiv100nptl-linux-gcov

2.下载qt-embedded-linux-opensource-src-4.5.3;

下载地址:

2.1 官网地址:

ftp://ftp.qt.nokia.com/qt/source/qt-embedded-linux-opensource-src-4.5.3.tar.gz

2. 2百度网盘:http://pan.baidu.com/wap/shareview?&shareid=2505547396&uk=1627858430&dir=%2F%E9%9B%B6%E5%9F%BA%E7%A1%80%E5%AD%A6%E4%B9%A0%E5%B5%8C%E5%85%A5%E5%BC%8FLinux%E7%9A%84QT%E7%BC%96%E7%A8%8B%E5%BC%80%E5%8F%91%E8%BD%AF%E4%BB%B6&page=1&num=20&fsid=1830301785&third=0

3.更改qt-embedded-linux-opensource-src-4.5.3/mkspecs/qws/linux-arm-g++/qmake.conf如下

include(../../common/g++.conf)

include(../../common/linux.conf)

include(../../common/qws.conf)

# modificationsto g++.conf

#arm-hi  + Tab key to show which toolchainhave been installed

CCHEAD?= arm-hisiv100nptl-linux-

QMAKE_CC                = $(CCHEAD)gcc

QMAKE_CXX               =$(CCHEAD)g++

QMAKE_LINK              =$(CCHEAD)g++

QMAKE_LINK_SHLIB        = $(CCHEAD)g++

#modifications to linux.conf

QMAKE_AR                = $(CCHEAD)ar cqs

QMAKE_OBJCOPY           =$(CCHEAD)objcopy

QMAKE_STRIP             = $(CCHEAD)strip

load(qt_config)

4.配置qt-embedded-linux-opensource-src-4.5.3

cd   qt-embedded-linux-opensource-src-4.5.3

./configure -embedded arm \

-qt-libpng \

-qt-libjpeg \

-qt-libtiff \

-qt-libmng \

-qt-gif \

-qt-zlib \

-fast \

-no-webkit \

-nomake examples \

-nomake demos \

-static \

-little-endian\

--prefix=/usr/local/qt-4.5.3

其中 --prefix是编译QT后要安装的路径,可以根据自己实际情况更改。

5.编译QT库  --  此处较为耗时,大概30min

gmake

6. 安装QT库

gmake install

7.更改虚拟机的环境变量

export QMAKESPEC=/usr/local/qt-4.5.3/mkspecs/qws/linux-arm-g++

export  PATH="/usr/local/qt-4.5.3/bin":$PATH

要根据实际情况更改上边的2个环境变量。/usr/local/qt-4.5.3是自定义的QT的安装路径

8.检查QT环境变量是否设置成功。

输入 which  qmake 后显示路径应该是QT安装目录里的qmake.

[root@rogerqt-4.5.3]# which  qmake

/usr/local/qt-4.5.3/bin/qmake

9.qt 库安装完成。

==========================================================================

安装过程中的相关出错信息:

1、

g++ -c -pipe -fno-exceptions -O2 -Wall -W -D_REENTRANT -fPIC -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DHB_EXPORT=Q_CORE_EXPORT -DQT_NO_DEBUG -I../../mkspecs/qws/linux-x86-g++ -I. -I../../include -I../../include/QtCore -I.rcc/release-static-emb-arm -Iglobal -I../3rdparty/zlib -I../3rdparty/harfbuzz/src -I.moc/release-static-emb-arm -o .obj/release-static-emb-arm/qfutureinterface.o concurrent/qfutureinterface.cpp
{standard input}: Assembler messages:
{standard input}:407: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:420: Error: no such instruction: `swpb %al,%dil,[%esi]'
{standard input}:431: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:1025: Error: no such instruction: `swpb %cl,%al,[%esi]'
.
.
.
.
.
. {standard input}:6283: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:6296: Error: no such instruction: `swpb %al,%sil,[%edi]'
{standard input}:6307: Error: no such instruction: `swpb %cl,%al,[%edi]'
gmake[1]: *** [.obj/release-static-emb-arm/qfutureinterface.o] 错误 1
gmake[1]: Leaving directory `/root/Download/qt-embedded-linux-opensource-src-4.5.3/src/corelib'
gmake: *** [sub-corelib-make_default-ordered] 错误 2
[root@roger qt-embedded-linux-opensource-src-4.5.3]#

检索 Log信息 发现: 交叉编译工具链的名称写错了, 修正后即可;

2、

The target system byte order could not be detected!
Turn on verbose messaging (-v) to see the final report.
You can use the -little-endian or -big-endian switch to
./configure to continue.

根据提示信息 可知: 未指定 大小端 模式, 指定      -little-endian 即可;

/*  测试 大小端 模式 Sample, 编译执行文件 到目标机运行即可 */
#include "stdio.h"
int main()
{
union w
{
int a; //4 bytes
char b; //1 byte
} c;
c.a=1;
if (c.b==1)
printf("It is Little_endian!\n");
else
printf("It is Big_endian!\n");
return 1;
}

Step 4:

# ./configure -embedded arm  -qt-libpng -qt-libjpeg -qt-libtiff -qt-libmng -qt-gif -qt-zlib  -fast -no-webkit -nomake examples -nomake demos-little-endian -static --prefix=/usr/local/qt-4.5.3

最新文章

  1. Linux: vi 编辑器中文乱码
  2. 0422 发现( 数学口袋精灵)bug
  3. Win7 下以管理员身份运行批处理文件,切换JDK版本
  4. http拦截器interceptors
  5. Unity 用C#脚本读取JSON文件数据
  6. optimizer for eclipse--Eclipse优化,让你的Eclipse快来飞!
  7. ASP.NET 使用My97DatePicker日期控件
  8. 利用工具MailUtils实现邮件的发送,遇到的大坑,高能预警!!
  9. css3中的布局相关样式
  10. 图片下载、渲染操作 小例子 看多FutureTask
  11. 免费下载获取Odoo中文开发 指南 手册
  12. SPI通信的基础知识
  13. springboot中velocity tool中注入bean
  14. bzoj 4008 亚瑟王 - 动态规划 - 概率与期望
  15. vue router 跳转到新的窗口方法
  16. windows下,将MySQL做成服务/脚本启动
  17. js 之 this call apply
  18. Hive 数据类型转换
  19. 使用递归打印二叉树的左视图 java
  20. 2.4 自己编写一个vivi驱动程序

热门文章

  1. fastDFS shiro权限校验 redis FreeMark页面静态化
  2. 原生开发之css样式问题(持续更新)
  3. php(一)
  4. 将Jenkins的测试结果整合到Testlink
  5. vue2.0 vue.extend()的拓展
  6. 5.4QBXT 模拟赛 (Rank1 机械键盘 蛤蛤)
  7. jQuery radio 选中提示
  8. 使用VS Code调试Flutter(检查用户页面)
  9. vs code 用户代码片段 html.json
  10. Java中List集合的遍历