Qt5.9.7 for ARM的编译安装(32位和64位)

Qt5.9.7 for ARM的编译安装

 

  • 下载源码

前往http://download.qt.io/official_releases/qt/5.9/5.9.7/single/下载最新版的源码(我这里下载的是当时最新的5.9.7)qt-everywhere-opensource-src-5.9.7.tar.xz,然后解压到某个文件夹

  • 为你的Linux安装常用的开发环境,比如gcc,make,cmake,gdb,g++

我用的是debian9.5,sudo apt-get install build-essential可以安装大部分需要的开发环境。

  • 安装arm-linux-gcc

注意,别用4.x的arm-linux-gcc,因为老版本的gcc不支持c++11,虽然4.8开始的gcc可以通过-std=c++11来开启c++11,但编译还是会有很多问题,我用的是6.3.1的版本,对c++支持比较好。从网上下载arm-linux-gcc的压缩包解压出来设置好环境变量就行了,注意arm-gcc有好多种版本,要选择arm-linux-gnueabihf或arm-linux-gnueabi,如果你的ARM支持硬件浮点运算就选择前者,其中x86_64表示宿主机是64位并不是目标平台是x86_64。配置完了别忘了验证你的arm-linux-gcc是否能运行,方法与PC上的gcc类似。

gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf.tar.xz 记得下载这个gcc-linaro-6.3.1-2017.02-x86_64_arm-eabi.tar.xz而不是这个

  • 修改qmake.conf

因为我选择的是支持硬件浮点运算的arm-gcc,而qmake.conf默认的是不带hf的gcc,所以要做修改,找到qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf,将所有的arm-linux-gnueabi替换成arm-linux-gnueabihf,然后保存。

  • 配置

这里去掉了opengl,目前还没找到怎么在arm中编译支持opengl的qt,安装路径我选择的是/opt/arm-qt,务必确认安装路径存在。

32位arm:

../configure -release -extprefix /opt/arm-qt -xplatform linux-arm-gnueabi-g++ -no-opengl -no-openssl -nomake tests -no-compile-examples -nomake examples -gif -ico -qt-libpng -qt-libjpeg -qt-sqlite

64位aarch64:

../configure -recheck-all -release -extprefix /opt/aarch64-qt -xplatform linux-aarch64-gnu-g++ -no-opengl -no-openssl -nomake tests -no-compile-examples -nomake examples -gif -ico -qt-libpng -qt-libjpeg -qt-sqlite

在此过程中,会让你选择商业版还是开源版,选择o就行,还有是否接受协议,输入y就行。

  • Make

前面的步骤都没问题之后,就可以开始漫长的编译了,如果你的CPU比较强大,可以多线程加快速度,比如make -j4,如果你的arm-gcc版本低于6.x最好单线程,不然很容易出错。Make过程需要很长时间。

  • make无误之后,就可以make install

注意权限问题,可能要sudo make install,只要make没出错,install几乎不会有问题。

  • qt creator中加入刚才编译安装的armqt

当然前提是你已经为宿主机安装了qt。

 

Qt5.9.7 for ARM的编译安装(32位和64位)_第1张图片

Qt5.9.7 for ARM的编译安装(32位和64位)_第2张图片

Qt5.9.7 for ARM的编译安装(32位和64位)_第3张图片

Qt5.9.7 for ARM的编译安装(32位和64位)_第4张图片

  • 用qt creator新建一个arm版的qt程序测试一下能不能正常运行,注意,将编译好的程序拷贝到arm上可能要chmod改一下权限才能运行。

你可能感兴趣的:(C++,qt,arm)