Ubuntu与致远ARM交叉编译Qt5.12环境

        ARM板现有环境配置(主要是对/etc/profile/编辑)较简单,参考上一篇博客,板子上已经部署了Qt5.15。
Ubuntu与国产致远ARM_3568交叉编译Qt此文档只是为了记录错误的过程,下一往篇博客会直接介绍正确的配置。https://blog.csdn.net/qq_35529025/article/details/129524412

        本文主要介绍使用第三方ToolChain编译Qt源码并使用aarch64-linux-gnu-gcc编译器的过程。实际第三方ToolChian可能未使用。

 一、Qt基本安装

        官网下载:

        1、qt-opensource-linux-x64-5.12.2.run

        2、qt-everywhere-src-5.12.2.tar.xz

        修改run文件的可执行权限并安装;解压src并等待接下来的编译。

二、aarch64-rockchip-linux-gnu及配置

        aarch64-rockchip-linux-gnu是国产芯片的ToolChian。猜测与aarch64-linux-gnu兼容,因此后续很多编译与配置实际是使用aarch64-linux-gnu,并且成功。

root@ubuntu:/home/zfadmin# vi ~/.bashrc

        在文件尾添加(依据自己的路径修改):

export ARCH=arm
export CROSS_COMPILE=aarch64-linux-gnu-
export PATH=$PATH:/home/zfadmin/aarch64-rockchip-linux-gnu/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/zfadmin/aarch64-rockchip-linux-gnu/lib

        其中bin目录下是具体编译器的位置。

        安装make、gcc-5,并将默认的gcc版本配置成gcc5。

sudo apt-get install make
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-5 g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5

        安装aarch64-linux-gnu-gcc与aarch64-linux-gnu-g++。实际使用的是自动安装的aarch64-linux-gnu-g++,版本是gcc-7。

# 此处选择gcc-5-aarch64-linux-gnu以及g++-5-aarch64-linux-gnu进行安装
# 实际在“没有版本号安装”的时候会依据环境自动安装另外的版本。
sudo apt-get install gcc-5-aarch64-linux-gnu 
sudo apt-get install g++-5-aarch64-linux-gnu
# 安装一个没有版本号的gcc和g++
sudo apt-get install gcc-aarch64-linux-gnu
sudo apt-get install g++-aarch64-linux-gnu
# 查看版本
aarch64-linux-gnu-g++ -v
aarch64-linux-gnu-gcc -v

三、qt-everywhere编译

        1、在qteverywhre主目录下(qtbase文件夹的上层)创建一个autoconfig.sh文件,用于对./configure一系列的配置操作,内容如下:

#!/bin/bash
./configure -prefix /home/zfadmin/armqt-5.12.2_1 \
-opensource \
-confirm-license \
-release \
-strip \
-shared \
-xplatform linux-aarch64-gnu-g++ \
-optimized-qmake \
-c++std c++11 \
--rpath=no \
-pch \
-skip qt3d \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcanvas3d \
-skip qtconnectivity \
-skip qtdatavis3d \
-skip qtdoc \
-skip qtgamepad \
-skip qtlocation \
-skip qtmacextras \
-skip qtnetworkauth \
-skip qtpurchasing \
-skip qtremoteobjects \
-skip qtscript \
-skip qtscxml \
-skip qtsensors \
-skip qtspeech \
-skip qtsvg \
-skip qttools \
-skip qttranslations \
-skip qtwayland \
-skip qtwebengine \
-skip qtwebview \
-skip qtwinextras \
-skip qtx11extras \
-skip qtxmlpatterns \
-make libs \
-make examples \
-nomake tools -nomake tests \
-gui \
-widgets \
-dbus-runtime \
--glib=no \
--iconv=no \
--pcre=qt \
--zlib=qt \
-no-openssl \
--freetype=qt \
--harfbuzz=qt \
-no-opengl \
-linuxfb \
--xcb=no \
--libpng=qt \
--libjpeg=qt \
--sqlite=qt \
-plugin-sql-sqlite \
-recheck-all

       以上配置了输出目录、交叉编译器版本等。

       2、 对相应交叉编译器版本的qmake进行配置:

root@ubuntu:/home/zfadmin# vim /home/zfadmin/qt5.12src/qt-everywhere-src-5.12.2/qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf

        内容如下:

#
# qmake configuration for building with aarch64-linux-gnu-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

# modifications to g++.conf
QMAKE_CC                = aarch64-linux-gnu-gcc
QMAKE_CXX               = aarch64-linux-gnu-g++
QMAKE_LINK              = aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++

# modifications to linux.conf
QMAKE_AR                = aarch64-linux-gnu-ar cqs
QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy
QMAKE_NM                = aarch64-linux-gnu-nm -P
QMAKE_STRIP             = aarch64-linux-gnu-strip
load(qt_config)
~                 

         3、在此目录下执行

./autoconfig
make -j8
make install

        如果不出意外,将会在/home/zfadmin/下看到armqt-5.12.2_1文件夹,其中目录如下:

zfadmin@ubuntu:~/armqt-5.12.2_1$ ll
总用量 36
drwxrwxrwx  9 root    root    4096 Mar 13 20:28 ./
drwxr-xr-x 23 zfadmin zfadmin 4096 Mar 13 23:48 ../
drwxrwxrwx  2 root    root    4096 Mar 13 20:29 bin/
drwxrwxrwx  3 root    root    4096 Mar 13 20:28 doc/
drwxrwxrwx 13 root    root    4096 Mar 13 20:29 examples/
drwxrwxrwx 25 root    root    4096 Mar 13 20:28 include/
drwxrwxrwx  4 root    root    4096 Mar 13 20:28 lib/
drwxrwxrwx 71 root    root    4096 Mar 13 20:28 mkspecs/
drwxrwxrwx 10 root    root    4096 Mar 13 20:28 plugins/
zfadmin@ubuntu:~/armqt-5.12.2_1$ 

        在./bin中有将要用到的qmake。

四、QtCreator配置

        打开QtCreator,工具-->选项-->kits,对编译套件进行配置。

1、手动添加一个Qt Versions,指向刚刚编译出来的qmake,配置完成之后点击Apply。

 2、手动添加一个kits并设置

        编译器选择安装aarch64-linux-gnu-gcc时自动生成的编译器,gcc版本与aarch64-linux-gnu-gcc -v显示的版本要保持一致。Qt版本选择刚刚添加Qt Versions。

        理论上应该选择厂商给的aarch64-rockchip-linux-gnu,但是可能在编译源码的时候没有选择,在此选择aarch64-rockchip-linux-gnu会无法编译。

 3、选择手动添加的arm套件,构建一个hello world项目,完成后会有一个build文件夹,将其中的可执行文件拷贝到ARM板上,修改权限,直接运行,未见异常。

 

注意:编译出来的目录不要随便改名字,在qmake执行文件中会记录当时编译的路径名称

参考链接 QT·移植Qt到ARM平台及搭建Qt交叉编译环境

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LanSe___

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值