Ubuntu中完成Linux环境Qt源码交叉编译并配置Qt环境

一.背景

最近需要对接一个新板子,厂商对接编译链aarch64-linux-gcc,使用Qt版本Qt5.15.10。由于Qt5.15版本开始Qt库和QtCreator分离了,是为方便QtCreator上可以配置多个版本的Qt,在此选择QtCreator4.15.0下载的是官网的run包,Qt5.15.10以官网下载的源码进行编译安装(注意,要对接开发板就要对Qt库使用交叉编译,Qt即便提供了run包,你安装run包时也要选择安装源码(目的是将源码重新交叉编译一份开发板用的版本),安装完后,要用安装释放目录Src里的源码通过交叉编译工具链重新编译开发板匹配的Qt库,当然最好直接下载源码通过交叉编译器编译生成对应的qmake才可以);
整个LinuxQt嵌入式开发准备是这样的:
第一步:拿到板子对应的交叉编译链,将编译链安装到你的虚拟机系统中(一般就是拷贝编译链到某个目录,然后配置环境变量指向这个目录,保证编译链能被找到);
第二步:搭建开发环境,包括用编译链来编译Qt源码并将Qt安装到系统上,以及一些opencv呀,openssl呀,jsoncpp呀等等你要用到的三方库用交叉编译进行编译安装,配置好开发环境;
第三步:在Qt上开发你要做的程序或库,开发完成后,将开发的程序呀,库呀编译出来后,连同一些三方库交给系统固件去打包发布;

二.下载Qt

在Qt官网分别下载QtCreator和Qt库,
Qt库从官网下载Qt5.15.10源码包。
QtCreator我选择4.15.0版本(注意这是QtCreator,不是Qt库,比如你安装的5.14.2的Qt,它内部的QtCreator版本是4.11.1)

Qt官网地址:https://download.qt.io/archive/qt/5.15/5.15.10/single/
在这里插入图片描述

QtCreator官网地址:https://download.qt.io/archive/qtcreator/4.15/4.15.0/
在这里插入图片描述

三.安装QtCreator

QtCreator下载的是run包,安装简单,启动命令行执行即可

./qt-creator-opensource-linux-x86_64-4.15.0.run

安装完可以在Ubuntu的右下角九个点处,点击打开可以看到系统已安装的所有工具,找到“Qt Creator”,右键点击,选择“Add to Favorites”,就会将QtCreator的快捷方式放置在左侧菜单栏了。
在这里插入图片描述

**注意:**安装完Qt Creator后按理应该可以直接打开QtCreator的,但实际可能点击后没反应,即使在安装目录下命令打开,也会报错,打开失败。如下:
在这里插入图片描述
这可能是因为环境变量没设置,导致找不到库;或者压根就缺少库。
解决办法:
先用命令“vim ~/.bashrc”打开bashrc文件,再在文件尾部加上“export QT_DEBUG_PLUGINS=1”,再执行命令“source ~/.bashrc”,使其生效,再尝试命令打开qtcreator。
如果还打不开就是直接缺库了。
查看打开Qt Creator报错信息,发现跟xcb相关的库找不到
在这里插入图片描述
执行命令安装相关缺失的库,直接把所有相关的库都装上。

sudo apt-get install libxcb*

在这里插入图片描述
还有这个库:

sudo apt-get install libxkbcommon*

在这里插入图片描述
安装完缺少的库之后,再尝试打开qt creator,成功。
在这里插入图片描述

4.vim 编译安装Qt

1.交叉编译链

解压厂家提供的arrch64-linux-gnu交叉编译器包,安装(其实就是解压释放)到/usr/local下(你也可以选择放在/opt或者其他目录),并在/etc/profile里设置环境变量:

export PATH="/usr/local/aarch64-linux-gnu/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/aarch64-linux-gnu/lib:$LD_LIBRARY_PATH"

并调用命令"source /etc/profile" 刷新系统环境变量,确保交叉编译链的GCC可用;

2.解压配置Qt

解压Qt5.15.10源码包,在源码包中qtbase/mkspecs/linux-aarch64-gnu-g++中修改qmake.conf文件,添加配置arm版本,修改GCC,GXX等全部指向前面厂商交叉编译器路径下的GCC/G++;
在这里插入图片描述
在Qt5.15.10源码包中执行./configture,生成makefile文件,但这里最好像下面这样,自己写一个configure配置文件的shell脚本,可以通过修改一些配置,设定安装路径,以及增加或跳过qt某些模块的编译,比如触屏库tslib就需要特别配置;
注:Qt的编译参数每个版本都可能有出入,毕竟一直在更新代码,甚至有些分类描述变了,比如之前-qt-xcb到了5.15改成了-xcb,之前-qt-sql-sqlite改成了-qt-sqlite,一定要看源码下的readme,里面约定了编译环境要求的最低版本,后面qt5开始具体的配置参数有哪些放到了qtbase目录下的config说明。
在这里插入图片描述
执行./configture时会提醒你是否选择开源和遵守开源协议。注意:configure这里一般不会出多大问题,主要是注意是否要加一些扩展的插件库,比如openssl,opengl ,tslib等,这些可能影响到后面make时由于器又依赖其它没有安装的库导致编译错误。

3.编译Qt源码

执行make指令(为避免意外,还是用sudo make 吧),编译QtQt5.15.10;make中如果前面configure配置比较中规中矩,一般不会出错,但有时会因为系统的GCC以及其他依赖库等安装与否及版本不同会出错;比如报错某个头文件找不到,或者其他失败,这时就要查看报错指向的Makefile文件所在行,该能看出是哪些模块引起的出错;
执行sudo make install 安装。安装也可能出错,一般是安装一些个别库时,缺少依赖库或者附属库导致,重点看安装目录下有没有安装的库文件以及安装目录下/bin目录中最重要的qmake文件。安装完成后,检查前面configure文件中配置的Qt安装路径是否已安装Qt;

4.配置QtCreator

打开QtCreator的Kits构建与配置,先在编译器中,手动添加GCC/G++工具链;名称可以自定,编译器路径一定要选对;
1.设置编译器,GCC和G++指定编译链;
在这里插入图片描述
2.设置Qt版本,手动添加自己编译的Qt对应的qmake;
添加Qt版本
3.设置构建套件,为Qt匹配对应的编译器
添加构建
至此,整个Qt环境已经搭建完成,可以直接创建项目开发了!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牵牛老人

码字不易,您的支持就是动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值