如何为TI AM437x在Qt Creator中配置Qt6套件(无法选择套件)
AM437x + TI Processor SDK 下Qt6开发套件配置指南
你的核心问题是Qt版本设为None,导致Qt Creator无法识别为有效的Qt开发套件。以下是针对你三个问题的具体解决方案:
1. 正确配置AM437x的Qt6套件步骤
步骤1:交叉编译Qt6到TI SDK的Sysroot
TI Processor SDK默认不包含Qt6,必须先交叉编译Qt6并安装到目标sysroot中:
- 先加载TI SDK的交叉编译环境(自动设置所有必要环境变量,比手动指定编译器更可靠):
source /root/SDK/ti-processor-sdk/linux-devkit/environment-setup-armv7at2hf-neon-oe-linux-gnueabi - 下载Qt6稳定版本源码(如6.5.x),解压后进入源码目录;
- 运行configure脚本配置交叉编译(适配AM437x硬件,启用GPU/EGL支持):
./configure -release \ -prefix /root/SDK/ti-processor-sdk/linux-devkit/sysroots/armv7at2hf-neon-oe-linux-gnueabi/usr/local/qt6 \ -sysroot $OECORE_TARGET_SYSROOT \ -device linux-generic-g++ \ -device-option CROSS_COMPILE=arm-oe-linux-gnueabi- \ -opensource -confirm-license \ -skip qtwebengine \ -nomake examples -nomake tests \ -feature-opengl-es2 \ -eglfs - 编译并安装:
make -j$(nproc) make install
步骤2:在Qt Creator中添加Qt版本
打开Qt Creator → 工具 → 选项 → Qt版本 → 点击「添加」,找到刚才安装的qmake路径:/root/SDK/ti-processor-sdk/linux-devkit/sysroots/armv7at2hf-neon-oe-linux-gnueabi/usr/local/qt6/bin/qmake
命名为「Qt 6.x.x for AM437x」并保存。
步骤3:配置工具链与CMake
- 工具链:工具 → 选项 → 套件 → 编译器,添加GCC/G++,路径使用你之前指定的:
- C编译器:
/root/SDK/ti-processor-sdk/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-gcc - C++编译器:
/root/SDK/ti-processor-sdk/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
- C编译器:
- CMake:工具 → 选项 → 套件 → CMake,添加你指定的SDK内CMake路径,命名为「ARM OE CMake」。
步骤4:创建并配置完整套件
工具 → 选项 → 套件 → 点击「添加」,命名为「AM437x Qt6 Kit」,关联以下组件:
- Qt版本:选择刚才添加的「Qt 6.x.x for AM437x」
- 编译器:关联配置好的ARM OE GCC/G++
- CMake:选择「ARM OE CMake」
- Sysroot:填写你之前的路径
/root/SDK/ti-processor-sdk/linux-devkit/sysroots/armv7at2hf-neon-oe-linux-gnueabi - 设备类型:Generic Linux Device,同时在「设备」选项中添加板卡的SSH连接信息(IP、用户名、密码)
完成后点击应用,创建新项目时就能看到这个套件。
2. 使用TI SDK的额外注意事项
- 必须加载SDK环境脚本:
source environment-setup-xxx会自动设置CC、CXX、SYSROOT等变量,避免手动配置时的路径或参数错误。 - Sysroot完整性:确保sysroot中包含AM437x所需的底层库(如TI SGX GPU驱动、EGL库),否则Qt6的图形模块无法正常编译运行。
- Qt版本不能设为None:Qt Creator的Qt开发套件必须关联有效的Qt版本,否则不会被识别为可用的Qt开发环境。
- CMake依赖SDK版本:必须使用SDK自带的CMake,它已经集成了适配TI交叉编译环境的工具链配置,无需手动编写
toolchain.cmake。
3. 推荐的Qt6与TI Processor SDK集成方式
方式一:基于Yocto构建集成Qt6(推荐)
TI Processor SDK基于Yocto构建,直接在Yocto中添加Qt6层可以生成自带Qt6的根文件系统和SDK,兼容性最好:
- 下载
meta-qt6层并添加到Yocto的bblayers.conf中; - 在
local.conf中添加需要的Qt6模块:IMAGE_INSTALL:append = " qt6-base qt6-widgets qt6-gui qt6-eglfs" - 重新构建根文件系统并生成SDK:
bitbake -c populate_sdk core-image-minimal - 安装新生成的SDK后,Qt Creator可以直接识别到内置的Qt6版本,无需手动交叉编译。
方式二:手动交叉编译Qt6到现有SDK
适合不需要重新构建整个根文件系统的场景,但需要注意:
- 确保Qt6的编译参数与SDK的编译器、库版本完全匹配;
- 若AM437x使用GPU,需确保SDK中包含SGX驱动的开发库,并在Qt配置时启用EGLFS后端。
内容的提问来源于stack exchange,提问作者김우람
相关产品推荐
相关产品推荐

