☰
Ubuntu20.04 交叉编译Qt5.15.15 for rk3588
2026/10/27 1:17:06 网站建设 项目流程

rk3588编译Qt搞了我大半年了,一直困惑特别感谢:qq1033878279的网友远程帮我编译演示了一遍。

一、vmware 安装基础工具

sudo apt install -y build-essential net-tools openssh-server vim openssl libssl-dev

二、vmware 下载 cmake和Qt源码

下载cmake :

wget https://cmake.org/files/v3.31/cmake-3.31.3.tar.gz

下载Qt5.15.15源码:

wget https://download.qt.io/official_releases/qt/5.15/5.15.15/single/qt-everywhere-opensource-src-5.15.15.tar.xz

下载交叉编译器:

git clone https://github.com/LubanCat/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.git

三、 vmware 安装 cmake

./configure --prefix=/opt/cmake make make install

四、查看 rk3588 arm架构及系统版本

root@ztl:~# uname -a Linux ztl 5.10.198 #209 SMP Wed Nov 27 09:28:31 CST 2024 aarch64 aarch64 aarch64 GNU/Linux

查看aarch64,64位的。查看系统:

root@ztl:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.3 LTS Release: 20.04 Codename: focal

得知rk3588的板子是ubuntu20.04,故vmware虚拟机也得安装ubuntu20.04

五、查看 rk3588 g++版本

root@ztl:~# g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/9/lto-wrapper Target: aarch64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu Thread model: posix gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)

查看版本为:

Target:aarch64-linux-gnu

六、 vmware 查看交叉编译器g++

查看 aarch64-none-linux-gnu-g++,得知target为aarch64-none-linux-gnu-

七、修改qmake.conf

根据路径 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)

修改为:

# # 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-none-linux-gnu-gcc QMAKE_CXX = aarch64-none-linux-gnu-g++ QMAKE_LINK = aarch64-none-linux-gnu-g++ QMAKE_LINK_SHLIB = aarch64-none-linux-gnu-g++ # modifications to linux.conf QMAKE_AR = aarch64-none-linux-gnu-ar cqs QMAKE_OBJCOPY = aarch64-none-linux-gnu-objcopy QMAKE_NM = aarch64-none-linux-gnu-nm -P QMAKE_STRIP = aarch64-none-linux-gnu-strip load(qt_config)

九、configure

在qt-everywhere-src-5.15.15根目录下打开终端,执行:

export ARCH=aarch64 export CROSS_COMPILE=aarch64-none-linux-gnu- export PATH=$PATH:/opt/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin

以上PATH为交叉编译器路径。然后继续执行:

./configure \ -xplatform linux-aarch64-gnu-g++ \ -prefix /opt/Qt5.15.15 \ -release \ -opensource \ -skip qtwayland \ -skip qtlocation \ -skip qtscript \ -make libs \ -optimized-qmake \ -no-opengl \ -no-sse2 \ -no-openssl \ -no-cups \ -no-glib \ -no-pkg-config \ -no-separate-debug-info \ -pch \ -shared \ -qt-libjpeg \ -qt-zlib \ -qt-libpng

其中 -xplatformlinux-aarch64-gnu-g++这里需要注意。

输入y回车后继续编译 。

十、执行编译

make make install

最好不要编译make -j16,否则可能编译失败。

十一、编译Qt 界面程序

在windows创建一个简单的界面程序,不做任何修改,直接拷贝到vmware虚拟机中,执行:

/opt/Qt5.15.15/bin/qmake untitled.pro

然后

make

拷贝到rk3588的板子上,执行

chmod 777 ./untitled ./untitled

如图:

如果遇到如下:

zr@ubuntu:/opt/untitled$ /opt/Qt5.15.15/bin/qmake ./untitled.pro Project ERROR: Cannot run target compiler 'aarch64-none-linux-gnu-g++'. Output: =================== =================== Maybe you forgot to setup the environment?

再执行下第九节的:

export ARCH=aarch64 export CROSS_COMPILE=aarch64-none-linux-gnu- export PATH=$PATH:/opt/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询