你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

Ubuntu虚拟机开发rk3399平台qt5应用程序环境傻瓜式搭建流程

2021-12-3 20:13:48

教程说明

        本教程主要针对的是友善之臂的rk3399平台,目的是实现在windows上面利用虚拟机开发基于arm架构的rk3399平台的ubuntu系统qt应用。

教程涉及了基本的交叉编译流程,其他平台的交叉编译环境搭建大体类似,如果使用的均是和文中一样的软件和配置搭建,那基本不会出现其他的问题

工具准备

  • windows10专业版64位系统

  • 虚拟机工具VMware Workstation 16 Pro其他版本的也可以,无影响

  • ubuntu18.04 系统映像

  • 友善之臂(Friendly)官方交叉编译工具包包含交叉编译工具

  • ubuntu 版本QtCreator 安装包

相关工具下载链接 

个人整合版本     rk3399交叉编译工具整合 天翼云盘

rk3399交叉编译工具包   Index of /qtsdk-friendlyelec/rk3399

Ubuntu MATE18.04极速版本  GitHub - ghostplant/web-ubuntu-os: Lite CD-Image, Web Ubuntu in Docker (GTK3 Flashback)

        搭建环境的过程中全程要保证互联网连接正常(期间多次涉及到数据下载更新),不建议网速慢的时候进行操作!   

1. 安装虚拟机

本教程以VMware Workstation为例,其他虚拟机软件需要自行参考其对应安装教程

1.1 Ubuntu18.04系统安装

1.1.1 创建虚拟机

打开VMware软件,在菜单栏选择新建虚拟机,然后完成虚拟机安装向导 

安装向导

1.1.2 安装ubuntu镜像

选择刚刚创建的虚拟机,然后点击CD/DVD(SATA)配置,选择使用ISO映像文件,输入要安装的映像文件路径,勾选启动时连接,然后点击确定。

一定要记得勾选启动时连接,否则无法正常进入系统!!!

点击开启此虚拟机,进入系统

打开虚拟机的时候如果出现电源提示,关闭即可

1.1.3 安装系统

双击快速安装器进行系统安装

安装完毕后,点击确定重启系统

系统重启后暂时还无法直接进入系统中,会出现如下提示

我们需要先移除映像文件。先关机

然后重新点击CD/DVD(SATA)配置,把启动时连接的勾去掉,然后选择使用物理驱动器

然后重新开机,进入系统主界面,显示如下图状态表示虚拟ubuntu系统安装成功

1.2 安装虚拟机交互助手(VMware Tools)

VMware Tools 中包含一系列服务和组件,可在各种 VMware 产品中实现多种功能,从而使用户能够更好地管理客户机操作系统,以及与客户机操作系统进行无缝交互。

        安装VMware Tools 可以实现主机文件直接拖拽至虚拟机内部、虚拟机桌面分辨率自适应调整等功能,就个人而言还是十分推荐安装的。当然,不安装也丝毫不影响后面环境的搭建就是了,可以选择性跳过此节。

1.2.1 获取VMware Tools安装包

VMware Tools安装包可以直接通过上方菜单进行安装。点击虚拟机软件上方的虚拟机,选择安装VMware Tools(T)...

此时系统会弹出光驱盘内容文件夹

然后在admin文件夹中创建一个文件夹

将VMware光驱的内容全部拷贝至该文件夹内,然后在新文件夹内部空白处右键选择--在终端中打开

此时命令行窗口弹出,后面的搭建环境指令均为在终端命令行模式下操作

1.2.2 安装VMware Tools

解压.tar.gz结尾的压缩包

具体的系统中出现的VMwareTools压缩包名以实际看到的为主

进入解压的文件夹内,赋予安装脚本执行权限

执行安装

基本上一路回车就行了,除去下面场景需要注意并按照图示处理

安装成功

一般情况下安装成功后可以立刻发现虚拟机分辨率尺寸做了自适应处理

安装成功后建议重启一次

1.3 更新系统软件

1.3.1 替换源

为了确保后续正常更新并下载开发环境的组件,需要替换更新源为国内源

首先备份原来的源列表

编辑sources.list文件

清空原有的链接,并添加源链接,保存退出

以替换为163源为例

1.3.2 更新系统

更换系统更新链接

更新完毕后,升级系统软件

更新中如果出现如下图场景,请按图示操作

更新完毕,建议重启系统

2. 安装Qt5并配置交叉编译环境

        接下来就是配置qt开发环境,如果使用的交叉编译平台不同,就需要根据自己的需求去下载指定的交叉编译工具。

2.1 安装官方交叉编译工具

        本教程使用的是使用的是由友善之臂提供的交叉编译工具包,如果是其他平台的工具,推荐下载官方提供的工具并参考官方的教程进行配置,自己另外寻找工具不一定合适,而且容易出现问题。

将友善官方交叉编译环境拷贝至系统中,并放入到一个文件夹内

这时候就可以利用VMware Tools的功能了,直接所有文件拖拽进去

打开命令行,为安装脚本设置执行权限,并执行安装

安装脚本内的指令包括安装gcc、g++等编译器的下载,需要保证互联网通畅,依据自己的网络环境,需要大致5-15分钟的安装时间

安装完毕

2.2 安装make

使用  sudo apt-get install make  指令安装make

安装完毕

2.3 安装Qtcreator

将安装程序拖入系统中

打开命令行,赋予执行权限,并执行安装

Qtcreator的安装和windows版本的如出一辙,网上搜下就有了,很简单,就不过多獒述了,需要注意的是高本版的安装程序可能需要校验用户,去qt官网注册一个即可

安装完毕后,不推荐利用桌面快捷方式启动qtcreator,中间会涉及到很多权限问题,推荐将qtcreator程序路径加入到系统环境中,或者进入qtcreator的bin目录下利用终端指令打开,可以有效避免权限问题

2.4 配置交叉编译环境

首先进入qtcreator目录,并打开qtcreator

如果安装qtcreator过程中没有手动修改安装路径,那么路径应该和我一致

 找到工具---选项

选择Kits---编译器,确认是否识别出之前安装的交叉编译工具,下图表示是识别成功

然后选择Qt Versions,如图所示,系统并没有识别出qmake,需要自行添加,

点击右侧的添加按钮,在弹窗中找到qmake

然后点击Apply(应用)

接着打开构建套件(Kit)

点击添加,然后输入配置如下

配置好后点击Apply,然后点击OK

2.5 测试

2.5.1 编译rk3399程序

在qtcreator中创建一个简单的widget项目(本例子项目名为test002),在编译选择这里选择之前配置的rk3399配置,构建

构建成功

可以发现在在对应的生成目录下有如下文件,其中test002就是我们的执行程序

 查看该程序属性,确实是交叉编译后的文件

2.5.2 打包依赖库

在编译生成的执行程序的目录下,查看该程序的依赖库

如果依赖库也有依赖,同样可以使用arm-linux-gnueabihf-readelf -a指令查看

 逐个查找依赖库的位置

注意,需要打包的是交叉编译工具目录下的库!

 并不需要全部打包,其中依赖的非qt类的库(图示红框)根据个人需求打包

就本例子来说,没有依赖其他的第三方库,我们只需要拷贝这两个qt库即可,其他的4个库目标板子上面基本都有自带的,因此可以不用拷贝

  • libQt5Widgets.so.5

  • libQt5Core.so.5

2.5.3 运行测试程序

        将生成的执行程序和依赖库一同拷贝到rk3399的板子上,放置于同一个目录下,然后赋予权限后运行

程序运行成功!

至此,整个交叉编译环境搭建完毕!可以愉快得进行开发了!

相关参考:

Ubuntu18.04实现Aarch64和arm32的交叉编译全步骤(Qt5.12.10源码编译)_ZLOZL的博客-CSDN博客

NanoPC-T4/zh - FriendlyARM WiKi

How to Build, Install and Setting Qt Application/zh - FriendlyARM WiKi

结语:

文档编写不易,如果觉得实用请不要吝惜你的三连!谢谢!