Qt源码交叉编译配置ARM架构环境

一、编译链的下载

关于编译链下载路径如下:

https://github.com/raspberrypi/tools

可以直接在虚拟机里Linux系统中使用命令sudo apt-get install gcc-aarch64-linux-gnu和sudo apt-get install g++-aarch64-linux-gnu来获取需要的交叉编译链。

注意英文解释,在老的树莓派架构使用的是sudo apt-get install gcc-arm-linux-gnueabihf,而新的架构至少树莓派4B使用的是sudo apt-get install gcc-aarch64-linux-gnu

安装完后,其安装的交叉编译链在/usr/bin文件夹下,在此文件夹下的编译链可以直接使用不需配置默认环境。如图所示:

二、下载Qt源码并进行交叉编译

关于下载源码本文章就不讲述了

对其进行解压进入到mkspecs文件夹,图片如下

如图外面可以看见这两个文件,我使用的是树莓派4B,所以需要配置的是linux-aarch64-gnu-g++文件(如果没有适合自己目标机架构的,可以自己mkdir生成一个文件,在后续执行脚本的时候指定就行了),然后我们进入linux-aarch64-gnu-g++文件夹,打开qmake.conf文件。

打开内容如下:我们进去发现其实Qt源码早已配置好此编译链,如果是使用其他arm架构则需要自己手动配置一下架构对应的编译链

切换回源文件目录,运行configure可执行文件如图:

运行如下命令:(需要注意的是,我这里没有配置触摸屏相关模块)

我在注意这里用的-xplatform  linux-aarch64-gnu-g++保证用的是此文件的qmake进行编译,和-prefix /usr/local/arm/qt保证文件安装在此目录。

./configure -prefix /usr/local/arm/qt -opensource -confirm-license -release -make libs -xplatform  linux-aarch64-gnu-g++  -pch -sql-sqlite -qt-libjpeg -qt-libpng -qt-zlib -no-opengl -no-sse2 -no-openssl -no-cups -no-glib -no-iconv -no-separate-debug-info -nomake examples -nomake tools -no-pkg-config

若需要支持触摸屏,记得加上 -tslib 项

./configure -prefix /usr/local/arm/qt -opensource -confirm-license -release -make libs -xplatform  linux-aarch64-gnu-g++  -pch -sql-sqlite -qt-libjpeg -qt-libpng -tslib -qt-zlib -no-opengl -no-sse2 -no-openssl -no-cups -no-glib -no-iconv -no-separate-debug-info -nomake examples -nomake tools -no-pkg-config -I /usr/local/arm/tslib/include -L /usr/local/arm/tslib/lib

执行完脚本后执行命令,make有点久请耐心等待,make install安装编好的库到文件/usr/local/arm/qt

make
make install

最后把/usr/local/arm/qt里的库放入ARM架构的系统中,可使用NFS共享目录来实现文件传输,这里就不介绍NFS了。

三、编译运行软件的Release版本

首先在虚拟机打开QT Creator,选择工具>>选项>>Kits>>添加>>GCC配置编译器,关于Kits的概念可以去找资料学习,如图:

我这里配置了C的和C++的,两个都有用,如图:

C配置:aarch64-linux-gnu-gcc ,C++配置:aarch64-linux-gnu-g++

配置好后配置Kits,如图:

配置好后配置设备,如图:添加时添加目标机的IP和用户名和密码

最后我找一个Qt自带的项目进行编译,如图:选择此项目

进行编译运行:生成可执行文件如下,把其放入arm架构开发板

四、关于具体在ARM开发板配置Qt环境

在开发板运行命令:

sudo vim /etc/profile

配置如下:

配置好后使用source /etc/profile生效。

最后运行编译好的可执行文件,效果如图:

  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Linux 系统上进行交叉编译带有 X11 的 ARM 架构Qt 应用程序,您需要遵循以下步骤: 1. 安装交叉编译工具链 您需要从 ARM 架构的供应商处获取交叉编译工具链,然后将其安装在 Linux 系统上。这个工具链可以让您将 Qt 应用程序编译成 ARM 架构的二进制文件。 2. 下载 Qt SDK 您需要从 Qt 官方网站下载适用于 ARM 架构Qt SDK。确保您选择了适当的版本,并下载相应的源代码和二进制文件。 3. 配置 Qt 在运行 configure 脚本之前,您需要设置一些环境变量,例如交叉编译工具链的路径和 Qt 库的路径。使用以下命令设置这些变量: ``` export CC=arm-linux-gcc export CXX=arm-linux-g++ export PATH=/path/to/cross-compiler/bin:$PATH export PKG_CONFIG_PATH=/path/to/qt/lib/pkgconfig ``` 然后,在 Qt 源代码目录下运行 configure 脚本: ``` ./configure -prefix /path/to/qt \ -embedded arm \ -xplatform linux-arm-gnueabi-g++ \ -no-glib \ -no-cups \ -no-pch \ -no-largefile \ -no-accessibility \ -no-gtkstyle \ -no-pulseaudio \ -no-alsa \ -no-sm \ -no-xinerama \ -no-xkb \ -no-xinput \ -no-xvideo \ -no-xsync \ -no-xrandr \ -no-xcursor \ -no-xfixes \ -no-xshape \ -no-xdamage \ -no-xrender \ -no-xinput2 \ -no-xkbcommon \ -no-icu \ -no-openssl \ -no-fontconfig \ -no-harfbuzz \ -no-gstreamer \ -no-opengl \ -no-opengles \ -no-eglfs \ -no-directfb \ -no-kms \ -no-linuxfb \ -no-mirclient \ -no-wayland \ -no-vulkan \ -no-widgets \ -no-qml-debug \ -qt-libjpeg \ -qt-libpng \ -qt-freetype \ -qt-zlib ``` 在配置过程中,您需要输入一些参数,例如交叉编译工具链的路径和 Qt 库的路径。根据您的需求进行选择。 4. 编译 Qt 在成功配置 Qt 后,您可以使用以下命令来编译 Qt: ``` make -j4 ``` 其中,“-j4”参数指定使用 4 个线程进行编译。您可以根据需要适当调整线程数。 5. 测试 Qt 在编译完成后,您可以使用以下命令来测试 Qt: ``` make check ``` 这个命令将运行 Qt 的测试套件。如果所有测试都通过,则说明 Qt 成功编译。 6. 编译应用程序 现在,您可以使用交叉编译工具链来编译您的 Qt 应用程序了。使用以下命令来编译应用程序: ``` arm-linux-g++ -o app main.cpp -I/path/to/qt/include -L/path/to/qt/lib -lQtGui -lQtCore -lX11 ``` 其中,“main.cpp”是您的应用程序的源代码文件,而“-I/path/to/qt/include”和“-L/path/to/qt/lib”参数分别指定 Qt 头文件和库文件的路径。最后,“-lQtGui -lQtCore -lX11”参数指定要链接的 Qt 库和 X11 库。 希望这些步骤能够帮助您成功地交叉编译带有 X11 的 ARM 架构Qt 应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值