ubuntu 18.0 交叉编译Qt5.12.12生成库文件

本文介绍如何下载Qt5.12.12并完成ARM64架构的交叉编译过程,包括配置环境、解决常见错误、安装编译后的库文件及测试简单应用的方法。

1、下载qt5.12.12

网站:Index of /icon-default.png?t=M276https://download.qt.io/

 

2、解压并配置

./configure -release -opensource -confirm-license -xplatform linux-aarch64-gnu-g++ -prefix ./qt5.12.2 -nomake examples -no-opengl -silent -qpa linuxfb

其中“-xplatform linux-aarch64-gnu-g++”是指定平台,比如笔者这里是arm64 位的,所以选择 “linux-aarch64-gnu-g++”,Qt 源码中提供了一些可选项,展示如下:

配置报错:Could not find qmake spec ''.

是因为源码路径中有中文路径,将其移植全英文路径下。

3、配置编译交叉工具链

vim  qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf

因为我们需要编译 ARM64 的库,且上面配置的也是 arm64,conf 文件中的配置如下:

 

下载交叉编译工具链:

$ sudo apt install g++-aarch64-linux-gnu
$ sudo apt install gcc-aarch64-linux-gnu

也可以自己导出交叉编译工具链到对应的终端下。只能2选1。 

4、编译并安装

make -j4 && make install

        安装到源码目录下的"qt5.12.2"文件夹目录下,这里的安装目录,是由配置中的“-prefix  ./qt5.12.2”指定的。

        安装后,得到的到如下目录

        验证so库的版本

        有“ELF 64-bit LSB shared object, ARM aarch64”则表示这是 arm 64 ,arm架构的库;也就是说只能在ARM 64 的cpu 上运行。

5、编译简单应用测试

                用交叉编译工具链来配置qtcreator的kit即可,相关信息可百度。

        该博客参考:交叉编译 Qt5.12.2_elikang的博客-优快云博客_qt 交叉编译

遇到相同的问题未再次记录。

       此外,刚开始按照上述博客做了一次,很成功,改为ARM64架构的配置后,怎么也编译不成功。删除源码重新解压后可以。

Qt是一种广泛使用的跨平台应用程序框架。本文将介绍如何在Ubuntu 18.04上交叉编译Qt 5.12.7的详细教程。 第一步是安装必要的依赖项。打开终端并输入以下命令: sudo apt-get update sudo apt-get install build-essential perl python git p7zip-full 接下来,你需要安装交叉编译工具链。在此示例中,我们将以ARM Cortex-A7为目标平台。 sudo apt-get install g++-arm-linux-gnueabihf libc6-armhf-cross-armel-cross binutils-arm-linux-gnueabihf 然后,创建一个新的目录并切换到该目录中,然后从Qt官方网站上下载最新的Qt源代码: mkdir qt-cross-compile && cd qt-cross-compile wget https://download.qt.io/archive/qt/5.12/5.12.7/single/qt-everywhere-src-5.12.7.tar.xz tar xvf qt-everywhere-src-5.12.7.tar.xz 接下来,创建一个称为“qt5-armhf.conf”的新文件,需要根据目标平台进行相应的更改: cd qt-everywhere-src-5.12.7/qtbase/mkspecs cp -r linux-arm-gnueabi-g++/ qt5-armhf cd qt5-armhf vi qmake.conf 确保以下行已正确配置: 将“QMAKE_CFLAGS”和“QMAKE_CXXFLAGS”修改为: QMAKE_CFLAGS = -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard --sysroot=/usr/arm-linux-gnueabihf/ QMAKE_CXXFLAGS = $$QMAKE_CFLAGS 对于“QMAKE_LINK”和“QMAKE_LINK_SHLIB”,添加以下行: QMAKE_LINK = arm-linux-gnueabihf-g++ QMAKE_LINK_SHLIB = $$QMAKE_LINK 接下来,进入Qt源代码目录并构建一个交叉编译版本: cd ../../.. ./configure -prefix /opt/qt5-armhf -static -opensource -confirm-license -release -skip webengine -skip wayland -skip qtgamepad make -j4 接下来,安装Qt到目标目录: sudo make install 完成后,你可以在目标文件夹/opt/qt5-armhf找到已安装的Qt库。现在你可以使用Qt Creator或手动创建项目并在Ubuntu 18.04中进行交叉编译
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值