文章目录
1QtCreator1.1 QtCreator选择1.2 QtCreator安装1.2.1 安装Qt5.15下载安装运行 1.2.2 安装QtCreator下载安装运行Locked 1.3 Qt5.15配置GCC配置G++配置qmake配置Kits配置 2 arm QtCreator配置2.1 交叉编译器和Qt库2.2 Qt5.15配置GCC配置G++配置qmake配置Kits配置 3 示例demo3.1 创建项目3.2 代码实现3.3 编译&运行X86与ARM镜像 参考
1QtCreator
1.1 QtCreator选择
在Qt5.15以前,Qt creator与Qt版本库是打包在一起发布的,比如要开发基于Qt5.14的代码,则从官网下载,安装,然后就可以参考Qt5.14的接口,进行开发。
但从Qt5.14以后,集成开发环境和Qt版本库是分开的,如下所示,只有源码,没有qt-opensource-xx
安装Qt,是在安装QtCreator的时候安装的,即一个Qt Creator,可以同时安装多个Qt不同的版本,如想要开发Qt6.2,则选择Qt6.2的库安装,如想要开发Qt5.15,则选择Qt5.15的库安装,Qt官方不会为每一个Qt版本,单独出一个Qt Creator.
所以我们 要想编译Qt5.15,需要通过QtCreator来实现安装。
单独安装QtCreator时有一个问题,QtCreator版本越高,它对编译器gcc的版本也越高,而gcc的版本,又和Ubuntu的版本有关,Ubuntu的版本越高,gcc的版本也会越高(当然也可以自定义),所以一个折中的方法是,QtCreator使用低版本的,如Qt5.14,而通过高版本的QtCreator来安装Qt5.15,使用低版本的QtCreator+Qtx.yy来安装QtCreator。
1.2 QtCreator安装
1.2.1 安装Qt5.15
下载
安装
1 修改权限
2 登录,然后《下一步》
3 默认没有出现我们想要的Qt5.15
4 更新源,选择Qt5.15
4 继续下一步,直接安装结束
运行
运行报错
WISONIC\80081001@ub16-1001:~$ /opt/Qt/Tools/QtCreator/bin/qtcreator/opt/Qt/Tools/QtCreator/bin/qtcreator: /lib/x86_64-linux-gnu/libz.so.1: version `ZLIB_1.2.9' not found (required by /opt/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Gui.so.6)/opt/Qt/Tools/QtCreator/bin/qtcreator: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /opt/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Gui.so.6)/opt/Qt/Tools/QtCreator/bin/qtcreator: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /opt/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6)/opt/Qt/Tools/QtCreator/bin/qtcreator: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /opt/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6)/opt/Qt/Tools/QtCreator/bin/qtcreator: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /opt/Qt/Tools/QtCreator/bin/../lib/Qt/lib/libQt6Core.so.6)
1.2.2 安装QtCreator
下载
从官网下载
qt-opensource-linux-x64-5.14.2.run
安装
1 修改权限
2 运行安装(或点击安装),一路next
记住安装目录
运行
运行安装目录下的bin/qtcreator
Locked
将其lock到侧边栏,方便打开
1.3 Qt5.15配置
GCC配置
打开Tools–>Options–>Kits–>Compilers,默认应该有GCC,如果没有,则说明系统没有安装gcc,手动安装后,通过Add–>GCC–>C,选择gcc目录添加(一般位于/usr/bin/gcc),并修改名字
G++配置
打开Tools–>Options–>Kits–>Compilers,默认应该有C++,如果没有,则说明系统没有安装g++,手动安装后,通过Add–>GCC–>C++,选择g++目录添加(一般位于/usr/bin/g++),并修改名字
qmake配置
打开Tools–>Options–>Kits–>Qt Versions,默认应该有qmake,如果没有,则说明系统没有检测到,则手动添加,通过Add,在弹出的对话框中,选择Qt5.15目录中的qmake,并修改名字
Kits配置
打开Tools–>Options–>Kits–>Kits–>Manual–>Add,在弹出的对话框中,依次修改Name(名称)、Compiler(C和C++)、Qt Version
2 arm QtCreator配置
2.1 交叉编译器和Qt库
arm平台与X86平台略有不同,arm平台的编译器中已经包含了Qt库,一般由芯片厂商或第三方(如类似飞凌、米尔等)提供,如在NXP平台上,飞凌提供的
命令行运行安装,默认安装在/opt目录下(也可以选择其他路径),安装后,如下所示
sysroots下会有2个目录,aarch64-poky-linux是用在arm平台上的,x86_64-pokysdk-linux是用在x86平台进行交叉编译的
2.2 Qt5.15配置
GCC配置
打开Tools–>Options–>Kits–>Compilers–>Add–>GCC–>C,重新命名,并指定目录2.1中gcc的安装目录(如/opt/fsl-imx-xwayland/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc)
G++配置
打开Tools–>Options–>Kits–>Compilers–>Add–>GCC–>C++,重新命名,并指定目录2.1中g++的安装目录(如/opt/fsl-imx-xwayland/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++)
qmake配置
打开Tools–>Options–>Kits–>Qt Versions–>Manual–>Add,在弹出的对话框中,选择目录2.1中安装的qmake(如/opt/fsl-imx-xwayland/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake),并修改名字
Kits配置
打开Tools–>Options–>Kits–>Kits–>Manual–>Add在弹出的对话框中,依次修改Name(名称)、Compiler(C和C++)、Qt Version。
这里与X86不同的是,需要设置一下Sysroot,将其指定的交叉编译器(/opt/fsl-imx-xwayland/4.14-sumo/sysroots/aarch64-poky-linux)
3 示例demo
3.1 创建项目
新建demo,通过File菜单,不过在最后一步,会有一个选择kits的选项,列出了当前设置的所有kits,在此选择默认
项目创建后,我们点击左边的Projects,在Build &Run下会有kits,此时点击绿色的小加号,也可以增加kits
3.2 代码实现
编写代码,实现功能,在此我们什么也不做,保持默认
3.3 编译&运行
选择kits,在此我们先选择x86-qt15
编译运行,点击绿色3角箭头或ctrl+R,会弹出一个MainWindow对话框
X86与ARM镜像
如上所示,我们选择x86 kits时,点击运行,可以弹出对话框,而点击arm kits时,是不会弹出对话框的,也就是不会运行的,只在将其放到arm平台上才能运行
qt@xboard:~/qt$ file build-untitled-adv_nxp_yocto2_5-Debug/untitled build-untitled-adv_nxp_yocto2_5-Debug/untitled: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.14.0, BuildID[sha1]=118fcafbb11877a4ec43693ec2682a725ca05888, not strippedqt@xboard:~/qt$ file build-untitled-x86_qt15-Debug/untitled build-untitled-x86_qt15-Debug/untitled: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=6271f576ccf62099b86b7ab9bc26c85c70d834d0, not stripped
参考
【1】https://blog.csdn.net/ACE_YOUNG/article/details/131196528
【2】https://download.qt.io/archive/qt/5.14/5.14.2/
【3】https://download.qt.io/archive/online_installers/
【4】https://download.qt.io/archive/qtcreator/