树莓派4B 64位系统下适配arm-linux-generic-elf-64bit的Qt5安装配置
树莓派4B 64位Bullseye系统Qt5 64位编译环境配置故障
问题背景
在树莓派4 Model B(8GB内存)的64位Bullseye系统上搭建Qt5环境,当前可适配32位编译器,但无法配置arm-linux-generic-elf-64bit编译器环境,需解决Qt版本的下载与配置问题。
已执行的安装操作
通过以下apt命令安装Qt组件:
sudo apt-get install qtbase5-dev qtchooser sudo apt-get install qt5-qmake qtbase5-dev-tools sudo apt-get install qtcreator sudo apt-get install qtdeclarative5-dev
遇到的错误
配置64位编译器套件时触发错误:
“编译器GCC(C++,arm 64bit,路径/usr/bin)(arm-linux-generic-elf-64bit)无法为Qt版本“Qt 5.15.2 in PATH (qt5)”(arm-linux-generic-elf-32bit)生成代码。”
原本预期apt安装的Qt版本支持64位编译,但实际不符合需求。
更新尝试及问题
尝试从头编译Qt,指定platform-option为linux-rpi64-vc4-g++,编译安装完成后在Qt Creator的Tools->Options->Kits->Qt Versions中添加该版本,信息如下:
- 名称:Qt 5.15.12 (5.15)
- ABI:arm-linux-generic-elf-32bit
- 源路径:/opt/Qt/5.15
- mkspec:linux-rpi64-vc4-g++
尽管平台选项和mkspec显示为64位版本,但ABI仍识别为32位,导致配置套件时出现上述相同错误。
解决方法
1. 确认系统及编译器的64位状态
先检查当前系统和编译器是否为纯64位:
# 验证系统架构 uname -m # 验证gcc编译器架构 gcc -v
输出应显示aarch64,若存在32位兼容组件,需确保默认调用64位编译器。
2. 重新编译Qt时指定正确的配置参数
编译Qt时,需明确指定64位相关配置,避免ABI识别错误:
# 进入Qt源码目录 cd /path/to/qt-everywhere-src-5.15.12 # 清理之前的编译缓存 make distclean # 配置编译参数,强制指定64位架构 ./configure -release -opengl es2 -device linux-rpi64-vc4-g++ -device-option CROSS_COMPILE=aarch64-linux-gnu- -sysroot / -prefix /opt/Qt5.15.12-rpi64 -opensource -confirm-license -skip qtwebengine -nomake tests -nomake examples
参数说明:
-device linux-rpi64-vc4-g++:明确指定64位树莓派平台-device-option CROSS_COMPILE=aarch64-linux-gnu-:指定64位交叉编译工具链(本地编译时也需明确,避免ABI混淆)-prefix /opt/Qt5.15.12-rpi64:指定安装路径,与之前的32位版本区分开
3. 编译并安装
# 编译(根据CPU核心数调整-j参数,树莓派4B可用-j4) make -j4 # 安装 sudo make install
4. 在Qt Creator中配置正确的Qt版本
- 打开Qt Creator,进入
Tools->Options->Kits->Qt Versions - 点击
Add,选择/opt/Qt5.15.12-rpi64/bin/qmake - 此时该Qt版本的ABI应显示为
arm-linux-generic-elf-64bit - 进入
Kits选项卡,创建新套件,选择刚添加的Qt版本、64位GCC编译器(路径为/usr/bin/aarch64-linux-gnu-g++),完成配置
5. 验证配置
创建一个简单的Qt控制台项目,选择新配置的64位套件编译运行,若能正常执行则配置成功。
内容的提问来源于stack exchange,提问作者Jack the Scripter
相关产品推荐
相关产品推荐

