QT-Embedded-4.5.3在海思35xx上移植
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
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
QT-Embedded-4.5.3在海思35xx上移植的更多相关文章
- 海思3519A上移植OpenCV3.x
环境安装与准备 下载opencv3.4.1. 或者 下载opencv3.2.0. 进入到opencv所在的目录新建目录build,install 安装cmake: apt-get install cm ...
- 在海思芯片上使用GDB远程调试
1 前言 使用海思平台上(编译工具链:arm-himix200-linux)交叉编译 GDB 工具(使用版本8.2,之前用过10.2的版本,在编译 gdbserver 遇到编译出错的问题,因为关联了其 ...
- 海思3519 qt ffmpeg 软解码播放avi
在海思3519上基于qt采用ffmpeg对avi进行解码显示,其中ffmpeg的配置,qt的配置在前文中已经说明,在此不再赘述. 解码 解码在单独的线程中进行,具体的代码如下: void VideoP ...
- 海思板卡SATA最佳读写块大小测试
1 引言 应需求,在海思板子上测试SATA读写速度,用dd指令,每次分别读/写不同大小的块 (bs),同时检测运行dd命令CPU占比,记录读/写速度和CPU占比. 2 实验过程 2. ...
- 海思hi3516 ive运动目标检测简单实现
在做车牌识别项目,通过先对识别区域内进行目标识别,能降低CPU的占用率,在检测到有运动目标的时候,再做车牌识别. //图像差分 s32Ret = HI_MPI_IVE_Sub(&IveHand ...
- 海思3559A QT 5.12移植(带webengine 和 opengl es)
海思SDK版本:Hi3559AV100_SDK_V2.0.1.0 编译器版本:aarch64-himix100-linux-gcc 6.3.0(这个版本有点小问题,使用前需要先清除本地化设置) $ e ...
- 海思3519A 移植 Qt 5.5.1
源码下载 网址:qt-everywhere-opensource-src-5.5.1.tar.gz 配置生成MakeFile 文件 解压源码包,在源码包路径下生成配置 MakeFile : ./con ...
- cryptopp使用Qt mingw编译,以及海思平台交叉编译
编译工程生成,使用qmake生成qt工程文件(海思平台时,要用海思平台的qmake),将 TEMPLATE = app 修改为: TEMPLATE = lib 添加如下: win32:LIBS += ...
- 海思 3520D 移植Qt4.5.3 一
一.移植Qt4.5.3 1.获得 Qt4.5.3 的源码Qt4.5.3源码的原始包 qt-embedded-opensource-src-4.5.3.tar.gz 将其复制到 /opt 下, ...
随机推荐
- git免密码
法1: git config --global credential.helper store 这样就自动储存密码 法2: 使用ssh访问(https:// 改成 ssh://)
- WPF学习08:MVVM 预备知识之COMMAND
WPF内建的COMMAND是GOF 提出的23种设计模式中,命令模式的实现. 本文是WPF学习07:MVVM 预备知识之数据绑定的后续,将说明实现COMMAND的三个重点:ICommand Comm ...
- Swift 基础语法入门(一)
一.变量和常量 1.声明常量和变量 用let来声明常量 let radius = 10 用var来声明变量 var age = 20 或者是var x = 0.0, y = 0.0, z = 0 ...
- 微信小程序开发初次尝试-----实验应用制作(一)
初次尝试微信小程序开发,在此写下步骤以做记录和分享. 1.在网上找了很多资料,发现这位知乎大神提供的资料非常全面. 链接 https://www.zhihu.com/question/50907897 ...
- avd manager或sdk manager无法打开
最近开始搞安卓,使用AS启动项目时老是报各种错误,而网上这方面的资料很多都解决不了.只能边实验边做. 定位到avd manager或sdk manager无法打开,网上找了很多资料,都不能解决,知道看 ...
- crontab安装及使用
linux下crontab安装yum -y install crontabs service crond start //启动服务service crond stop //关闭服务s ...
- iOS---iOS中SQLite的使用
一.SQLite的使用 采用SQLite数据库来存储数据.SQLite作为一中小型数据库,应用ios中,跟前三种保存方式相比,相对比较复杂一些.还是一步步来吧! 第一步:导入头文件 需要添加SQLit ...
- div根据鼠标的移入移除显示隐藏
onmouseout 是把div当成一个对象,div里面包含的元素当成别的对象,所以移动的时候,会隐藏,达不到我们预期的效果. onmouseleave 就是把整个div当成一个对象. 大家可以去试 ...
- servlet 生命周期 与 初始化
一. 生命周期 Servlet 通过调用 init () 方法进行初始化. Servlet 调用 service() 方法来处理客户端的请求. Servlet 通过调用 destroy() 方法终止( ...
- LeetCode887鸡蛋掉落——dp
题目 题目链接 你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑.每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去,如果没有碎可以继续使用.你知道存在楼层 F , ...