Qt 嵌入式开发快速搭建交叉编译环境

搭建Qt嵌入式交叉编译环境,核心目标是让你的Ubuntu开发机(X86架构) 能够编译出在ARM开发板上运行的程序。这主要涉及三个要素:交叉编译链、为ARM编译的Qt库、以及Qt Creator的配置。

整个过程可以分为以下四个主要步骤:

第一步:准备工作

首先,你需要在你的Ubuntu开发机上准备好以下基础材料:

  • 开发板交叉编译工具链 :由开发板厂商提供,例如针对ARM的 arm-linux-gnueabihf-g++-3

  • Qt源码包 :从Qt官网下载与你目标板兼容的版本(如 qt-everywhere-src-5.11.3.tar.gz)。

  • 可选依赖库 :如果你的程序需要触摸屏支持,还需要准备 tslib 源码 。

  • Qt Creator:在Ubuntu上安装好这个IDE,我们将配置它来调用交叉编译工具 。

第二步:交叉编译Qt库

这一步是为ARM开发板"量身定制"Qt库。你不能直接使用Ubuntu自带的Qt库,因为它们是为X86 CPU编译的。

  1. 设置交叉编译工具链的路径 :将厂商提供的工具链路径添加到环境变量 PATH 中,让系统能找到它们 。

  2. 配置编译选项 :进入Qt源码目录,运行 ./configure 脚本。最关键的是通过 -xplatform 参数指定目标平台 ,例如 linux-arm-gnueabi-g++,告诉编译脚本我们要为ARM平台生成代码。

  3. 编译依赖(如需触摸功能) :在编译Qt之前,先交叉编译 tslib,它会处理触摸屏输入的原始数据 。

  4. 编译并安装Qt :运行 makemake install。编译过程可能较长,最终产物(如库文件、qmake工具等)会安装到你指定的目录(如 /opt/qt5.11.3-arm)。

第三步:配置Qt Creator

这是让你的IDE"理解"交叉编译环境的关键环节。你需要通过"Tools" -> "Options" -> "Build & Run"来手动添加几个组件 :

  • Compilers (编译器) :添加交叉编译工具链中的 g++(如 arm-linux-gnueabihf-g++)。

  • Debuggers (调试器) :添加交叉编译工具链中的 gdb(如 arm-linux-gnueabi-gdb)。

  • Qt Versions (Qt版本) :添加我们在第二步编译生成的 qmake 工具(位于安装目录的 bin 文件夹下)。

  • Kits (构建套件):最后,创建一个新的"构建套件",将上面配置好的编译器、调试器和Qt版本组合在一起,并给它起个名字,比如"ARM-Dev-Kit" 。

完成配置后,你在Qt Creator里新建或打开项目时,就可以选择这个套件。当你点击"运行"按钮时,Qt Creator就会用你指定的交叉编译器去编译你的代码了。

第四步:部署与运行

  1. 部署Qt库到开发板 :将第二步编译好的整个Qt目录(如 /opt/qt5.11.3-arm)打包,拷贝到开发板的文件系统中(例如 /usr/local/qt5.11.3)。

  2. 配置开发板环境 :在开发板上,修改 /etc/profile 文件,添加环境变量。关键是要让系统知道Qt库的位置(LD_LIBRARY_PATH)、使用哪个帧缓冲设备(QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0)以及触摸屏插件(QT_QPA_FB_TSLIB=1)等信息 。

  3. 运行程序:通过NFS、U盘或scp等方式,把你用"ARM-Dev-Kit"编译好的程序传到开发板上,直接运行即可。

关键步骤总结

为了方便你操作,这里把核心环节和对应的命令/操作整理成一个表格:

步骤 核心任务 关键命令 / 操作
Step 1 交叉编译Qt库 ./configure -xplatform linux-arm-gnueabi-g++ -prefix /your/install/path make && make install
Step 2 在Qt Creator中添加编译器 Tools -> Options -> Build & Run -> Compilers -> Add -> GCC,选择 arm-linux-gnueabihf-g++
Step 3 在Qt Creator中添加Qt版本 Tools -> Options -> Build & Run -> Qt Versions -> Add,选择刚才编译生成的 qmake 路径
Step 4 在Qt Creator中创建构建套件 Tools -> Options -> Build & Run -> Kits -> Add,将新加的编译器Qt版本组合起来
Step 5 在开发板上设置环境 编辑 /etc/profile,添加 LD_LIBRARY_PATHQT_QPA_PLATFORMTSLIB_* 等变量

不同的开发板,其处理器架构、外设和厂商提供的工具链都可能不同。方便告诉我你使用的是哪款开发板吗?我可以针对你的具体型号,提供更精确的步骤指导,比如:

  • 获取正确的交叉编译工具链:帮你找到官方下载或确认安装方式。

  • 选择最佳的Qt版本:确保与你的板级支持包(BSP)兼容。

  • 优化Qt Creator配置:针对你的板子进行更精准的设置。

相关推荐
用户805533698031 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
xcyxiner1 天前
DicomViewer (vcpkg Windows和ubuntu编译)7
qt
Quz6 天前
QML Hello World 入门示例
qt
xcyxiner9 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner10 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner10 天前
DicomViewer (添加模型类)3
qt
xcyxiner11 天前
DicomViewer (目录调整) 2
qt
xcyxiner11 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
LDR00613 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术13 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript