Qt交叉编译环境搭建

该文详细描述了如何在Deepin20.3操作系统中,使用gcc-linaro-6.5.0交叉编译工具链,编译tslib-1.21和Qt5.12.9到arm架构的创龙335X开发板。过程包括下载和解压编译工具,配置tslib和Qt源码,修改qmake.conf文件,执行configure和make命令,以及在QtCreator中配置编译环境和SDK路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境及版本:

编译机:Deepin 20.3 Qt 5.12.9

arm编译工具: gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf.tar.xz

运行机:创龙335X开发板

1.下载arm编译工具:  gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf.tar.xz,下载路径Linaro Releases。解压(编译工具所使用的glibc版本要低于目标arm开发板的glibc版本,否则程序不能运行,此开发目前版本为glibc2.23)

2.  下载tslib-1.21.tar.gz,并解压,进入目录tslib-1.21,执行命令 

sudo ./configure --host=arm-linux-gnueabihf --cache-file=tmp.cache CC=/home/TME/gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
sudo make -j4 
sudo make install 

3.下载Qt源码:qt-everywhere-src-5.12.9.tar.xz,并解压

3.编辑qt-everywhere-src-5.12.9/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf,把arm-linux-gnueabi-gcc之类文件的全部加上步骤2中bin目录的路径前缀,并且所有arm-linux-gnueabi-xxx中的gnueabi变成gnueabihf

 4.进入qt-everywhere-src-5.12.9 目录,执行

./configure -shared -opensource -confirm-license -release -strip -xplatform linux-arm-gnueabi-g++ -optimized-qmake -c++std c++11 -pch -skip qt3d -skip qtcanvas3d -skip qtdatavis3d -skip qtdoc -skip qtlocation -skip qttools -skip qtwayland -skip qtwebengine -skip qtmacextras -skip qtwinextras -skip qtandroidextras -skip qtx11extras -make libs -make examples -nomake tools -nomake tests -no-openssl -no-opengl -no-sql-sqlite -linuxfb -qt-freetype --harfbuzz=qt --pcre=qt --zlib=qt --libpng=qt --libjpeg=qt -tslib -I /usr/local/include -L /usr/local/lib(根据需要精简)

注意:如果编译为静态库,则第一个参数为-static,动态库,则第一个参数为-shared。若需要加上ssl 则把ssl编译后,在qt编译参数中加上-openssl-linked -I/home/KAS-300/ssl/include -L/home/KAS-300/ssl/lib

5.执行sudo make -j4;sudo make install,完成后安装在/usr/local/目录下

6.安装qtcreator

7.在工具->选项->编译器中配置步骤2中的对应编译工具

8.在Qt version中配置sdk位置

9.在构建套件中选择上面配置的选项

 10.至此,可在Qtcreator中新建项目,并把编译出的程序放到arm开发板上运行

### 设置和配置Qt交叉编译环境 #### 配置交叉编译工具链 为了使Qt能够识别目标平台的编译器和其他开发工具,在`qt-everywhere-src-5.12.9/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf`文件中,需修改编译器路径以及架构特定参数。具体来说,应将所有涉及`arm-linux-gnueabi-*`命令的地方替换为目标系统的实际路径,并确保使用的工具链支持硬浮点ABI(即`gnueabihf`),这有助于提高性能并兼容更多设备[^4]。 #### 启动Qt Creator 通过创建脚本简化启动过程是一个不错的选择。可以在服务器上建立一个名为`qtstart`的小型Shell脚本来快速启动Qt Creator IDE。该脚本定义了必要的环境变量,并调用了位于指定位置下的Qt Creator二进制文件: ```bash #!/bin/sh export QT_HOME=/opt/Qt5.12.9/Tools/QtCreator/bin $QT_HOME/qtcreator.sh & ``` 此方法不仅便于管理不同版本间的切换,还允许用户自定义其他初始化选项或加载项[^3]。 #### 解决常见错误提示 当遇到类似于“Qt version is not properly installed”的警告时,通常是因为缺少某些必需组件或是安装过程中出现了问题。此时应当按照官方文档指示完成整个安装流程,特别是不要遗漏执行`make install`这一关键步骤来正式部署Qt库到系统中去[^2]。 #### 在Qt Creator内配置项目属性 对于Ubuntu 22这样的桌面操作系统而言,要在其上面成功实现针对ARM架构的目标板卡的应用程序开发,则需要在Qt Creator内部调整相应的构建套件设置。这意味着要指明正确的QMake规格、编译器以及其他可能影响最终输出的因素。这部分操作可以通过图形界面直观地完成,只需遵循相关指南逐步设定即可[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值