Qt5之海思交叉编译笔记
一、搭建环境
Win7 + VMware15 + Ubuntu16.04(64位) + Qt5.9.9
交叉工具链:arm-hisiv500-linux-
二、交叉编译
1)下载源码
http://download.qt.io/archive/qt/
当前我下载了和我的 Qt 同一个版本的源码 qt-everywhere-opensource-src-5.9.9.tar.xz 。并将其下载到 Linux 系统下,当前我存放在 /home/work/tools/ 目录下。然后解压源码包。
xz -d qt-everywhere-opensource-src-5.9.9.tar.xz
tar -xvf qt-everywhere-opensource-src-5.9.9.tar
之后就会得到一个 qt-everywhere-opensource-src-5.9.9 的目录 ,之后 cd 进入即可。
2)配置编译环境
./configure -prefix /opt/qt_hisiv500 -release -opensource -qt-libpng -qt-libjpeg -plugin-sql-sqlite -widgets -no-iconv -no-dbus -no-openssl -no-iconv -no-accessibility -no-sse2 -silent -xplatform linux-arm-gnueabi-g++ -nomake tools -nomake examples -nomake tests -qt-freetype -no-glib -strip -linuxfb -no-opengl
注意:-prefix 后面这个 /opt/qt_hisiv500 是后面安装的路径,可自行修改 !!!
以下根据提示输入 y 即可
3)修改交叉编译器
当我们配置成功之后 ,当前目录就会有一个 Makefile 文件, 在这文件中搜索 qmake.conf ,这个就是我们需要修改的文件
上图中我们可以看出 qmake.conf 文件所在的路径,打开这个文件如下图所示
上图中 arm-linux-gnueabi- 是默认的交叉编译器,我们需要改成自己需要的交叉编译器即可,如下所示
4)编译
make
5)安装
make install
上图看出在 /opt 目录下多出来一个 qt_hisiv500 的目录
在 qt_hisiv500/bin 目录下有一个 qmake 工具 ,这个是最常用的,之后会使用这个交叉编译代码,之后就可以在 ARM 板子上运行了。
三、测试
1)新建 Qt5 项目
这个步骤此处省略,当前已经建好Qt工程 ,不一定是 Qt 的界面工程,也可以是 Qt 的纯 C 工程或者是 纯 C++ 工程。
上图是一个 Qt5 界面工程,可以使用 Qt5 打开并且运行,但是此处使用 qmake 自己编译。
2)使用 Qt 自带的 qmake 编译工程
我的 Qt5.9.9 安装在 /opt/Qt5.9.9 目录下,所以自带的 qmake 所在目录如下
使用Qt5自带的 qmake 生成 Makefile
在 Qt 工程目录下输入一下命令
/opt/Qt5.9.9/5.9.9/gcc_64/bin/qmake
上图可以看出输入命令之后就有一个 Makefile,这样可以输入 make 编译 Qt 工程了
make
上图看出编译之后的可执行文件是 untiled ,使用 file 命令看出这是一个运行于 X86 平台的可执行程序,运行结果如下。
3)使用编译好的交叉工具 qmake 编译 Qt5 工程
其实和之前使用自带的 qmake 操作一样,生成 Makefile 的步骤如下
/opt/qt_hisiv500/bin/qmake
同样生成 Makefile 文件,打开 Makefile 可以看出使用 arm-hisiv500-linux- 进行编译的
make 编译
上图看出编译之后得到的可执行文件是运行在 ARM 平台的,所以在 Ubuntu 中无法运行。