STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建

三、Ubuntu下QT交叉编译环境搭建

3.1 下载安装qt-creater

https://download.qt.io/archive/qt/5.14/5.14.1/

下载你所需要的QT版本记得是linux版本的,然后根据自己电脑的位数选择合适的.

下载完后将文件复制到虚拟机linux内,也可直接通过Linux下载。

我把此安装包放在了网盘,链接在文末,可以自行下载。

在这里插入图片描述

安装

对qt-opensource-linux-x64-5.14.1.run文件赋予可执行权限:

sudo chmod 777 qt-opensource-linux-x64-5.14.1.run

再在qt-opensource-linux-x64-5.14.1.run文件所在目录下运行.run文件

./qt-opensource-linux-x64-5.14.1.run

然后按照windows下一样的步骤进行点击安装就可以了,大多点默认就可以,此处安装过程省略。

注意:安装完成 Qt 5.14.1 是不会在桌面出现启动快捷方式的,可以在/opt/Qt5.14.1/Tools/QtCreator/bin/下直接执行 qtcreator.sh 脚本来启动 Qt Creator。启动 Qt creator,如下执行指令。

Ubuntu# /opt/Qt5.5.1/Tools/QtCreator/bin/qtcreator.sh & (&的作用为在后台运行)

或者在桌面顶层左则资源搜索器处搜索“qt”也可以打开 Qt Creator。(如果需要使能环境变量的情况下,不建议这样打开,如果你只是需要编译出 ubuntu 上跑的程序时,可以这样打开) 。
STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第1张图片
Qt Creator 启动后出现下图欢迎页面,至此 Qt Creator 安装完毕。
STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第2张图片

3.2 、安装 QT 专用交叉编译工具链

OpenSTLinux SDK 是 Yocto SDK 定制发行版的软件开发套件, 它提供了独立的交叉开发工具链和针对

特定镜像中所使用到的特定链接库。提供的 SDK 是基于 STM32MP1A 开发板的定制交叉编译工具链,

该工具链可用STM32MP157开发板中所有项目的编译与调试。交叉编译链链接在文末链接/MP157/QT开

发环境搭建/QT安装/,将资料下的meta-toolchain-qt5-openstlinux-eglfs-fsmp1a-x86_64-toolchain-3.1-

snapshot.sh 通过sftp复制到 ubuntu 主机中, 也可以采用共享文件夹的方式将文件存入 上面建立的工具tools目录下

在这里插入图片描述

添加可执行权限

peanut@JPlover ~ % chmod a+x meta-toolchain-qt5-openstlinux-eglfs-fsmp1a-x86_64-toolchain-3.1-snapshot.sh

执 行 meta-toolchain-qt5-openstlinux-eglfs-fsmp1a-x86_64-toolchain-3.1-snapshot.sh 安 装 脚本。

peanut@JPlover ~ % ./ meta-toolchain-qt5-openstlinux-eglfs-fsmp1a-x86_64-toolchain-3.1-snapshot.sh

运行之后会提示输入安装位置, 直接按回车键默认即可:
STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第3张图片

继续询问是否安装 SDK, 输入 Y, 回车
STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第4张图片

默认安装路径安装在 opt 目录下, 这个目录需要有 root 权限, 所以安装时需要使用 sudo 安装, 过程中

需要输入用户的 sudo 密码(如果当前用户 sudo 功能已经授权, 这个密码就是用户的登录密码), 输入密

码后开始进行安装。
STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第5张图片

导入 sdk到环境变量

#切换到安装目录
peanut@JPlover ~ %  cd /opt/st/fsmp1a/3.1-snapshot/
#设置临时环境变量
peanut@JPlover ~ %  source ./environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

验证开发工具是否安装正确, 显示版本信息如下图所示。

peanut@JPlover ~ % arm-ostl-linux-gnueabi-gcc -v

STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第6张图片

3.3、配置 qt-creator的stm32mp157交叉编译工具

3.3.1、配置 GCC 与 G++

1) 配置 GCC

运行 QtCreator 后, 依次点击"工具"->“选项”, 出现选项对话框, 在左侧点击"Kits",右边选择"编译器"标

签。 点击右侧"添加"按钮, 弹出下拉列表后, 选择"GCC"的"C"。

STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第7张图片

填写信息如下, “Name"为"mp157-gcc”, “编译器路径"点击旁边的"浏览…“按钮选择路径是”/opt/st/fsmp1a/3.1-snapshot/sysroots/x86_64-ostl_sdk-linux/usr/bin/arm-ostl-linux-gnueabi/arm-ostl-linux-gnueabi-gcc”。

STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第8张图片
2) 配置 G++
点击右侧"添加"按钮, 弹出下拉列表后, 选择"GCC"的"C++", 下面的文本框填写"Name"为"mp157-g++", “编译器路径"点击旁边的"浏览…“按钮选择到路径是”/opt/st/fsmp1a/3.1-snapshot/sysroots/x86_64-ostl_sdk-linux/usr/bin/arm-ostl-linux-gnueabi/arm-ostl-linux-gnueabi-g++”。

STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第9张图片

填写完成后, 点击"Apply"。

3.3.2、配置 qmake

选择"Qt Versions"标签, 在右侧点击"添加…"。
STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第10张图片

会 弹 出 qmake 路 径 选 择 对 话 框 , 路径指定为 “/opt/st/fsmp1a/3.1-snapshot/sysroots/x86_64-ostl_sdk-linux/usr/bin/qmake”。 选择” qmake” 文件后, 点击"Open"按钮。
STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第11张图片

“Version name"改为” Qt %{Qt:Version} (mp157)"。 然后点击"Apply"按钮。

3.3.3、 配置 Devices

此时仍未配置MP157板卡环境,所以先不配置devices

3.3.4、配置 Kits

点击左侧"Kits", 右侧选择"构建套件Kits"标签,然后进行添加在弹出的对话框中"Name"为"STM32,P157", “Device Type"选择"Generic Linux Device"选项, “Sysroot"选择目标设备的系统目录”/opt/st/fsmp1a/3.1-snapshot/sysroots/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi” 。“Compiler"选择之前配置的名 称"mp157-gcc"和mp157-g++”, “Qt version"选择之前配置的名称"Qt 5.14.1(mp157)”, 其它默认即可, 最后点击"Apply"和"OK"按钮。
STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第12张图片

至此,Ubuntu下的qt交叉编译环境搭建完毕。

3.4第一个QT APP

打开qt creator,打开analogclock示例项目,
STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第13张图片

左下角可以选择本地的x86编译套件,运行该示例并输出,

STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第14张图片

若选择进行交叉编译,在左下角可以选择编译套件kit,我们选择上面配置好的STM32MP157,选择release

模式,点击构建,因为由于这是交叉编译,所以编译出来的程序不能在本地 PC 机上运行或调试。因此不

能点击运行按钮运行程序,也不能点击调试按钮调试程序。

如果构建成功,编译输出的文件默认在当前工程目录的上一级。
STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第15张图片

打开build-analogclock-STM32MP157-Debug文件夹,在里面可以发现以下文件,
STM32MP157嵌入式开发—2、Ubuntu下QT交叉编译环境搭建_第16张图片

图中的analogclock文件即为交叉编译链编译出来的在mp157板卡上运行的可执行文件。

至此,Ubuntu端QT交叉编译环境就建立完成。后续只需要将此可执行文件通过文件传输协议移植到ARM
开发板上即可,会在第二部分应用开发进行讲解。

你可能感兴趣的:(Linux嵌入式系统开发,linux,ubuntu,qt5)