Linux下的Qt环境搭建(arm交叉编译)


注意:本文软件环境为在虚拟机里搭建的ubuntu-14.04.5-desktop-amd64.iso,虚拟机版本VMware-workstation-full-9.0.0,如果链接中内容发生迁移无法下载可留下联系方式,虚拟机系统安装过程本文不做讲解,Qt的使用本文也不做讲解,本文的全部指令是在root用户权限下。由于论坛限制上传文件大小,所以如果需要本文所用到的文件可以留言。

Linux下的Qt环境搭建(arm交叉编译)

Qt环境安装应用

由于笔者最终是想将应用交叉编译运行到ARM开发板上(天嵌的E9_V3),此时只有Qt5.5的交叉编译工具,所以为了版本统一,Qt的版本也选择了Qt5.5 (如果连接失效请留言),下载时注意选择和系统位数一样:
Linux下的Qt环境搭建(arm交叉编译)
将下载下来的文件放到虚拟机里面,具体如何把下载下来的文件放进去方法不唯一,可以共享目录,也可以挂载U盘,也可以通过网络发送,装了虚拟工具过后也可以直接拖拽进去,但是,需要对比放到虚拟机的文件和本地PC的文件大小,由于笔者在运行安装文件时发现始终不能识别可执行文件,检查后才发现虽然虚拟机里面的文件名字和本地PC的一样,仔细对比才发现虚拟机里的文件不完整。
Linux下的Qt环境搭建(arm交叉编译)
放进来后需要做的第一件事是修改这个文件的权限,把可执行权限加上,读者在用命令的时候要看看是否处于该文件目录。
chmod +x qt-opensource-linux-x64-5.5.1.run
Linux下的Qt环境搭建(arm交叉编译)
直接运行这个文件集会弹出安装界面:
./qt-opensource-linux-x64-5.5.1.run
Linux下的Qt环境搭建(arm交叉编译)
一直下一步,如果需要修改安装的路径就下面这一步选择自己的路径,笔者默认路径:
Linux下的Qt环境搭建(arm交叉编译)
到了下面这一个界面就根据自己的需要选择安装,笔者就选了第一个:
Linux下的Qt环境搭建(arm交叉编译)
下一步直到安装完成。到安装路径下找到应用的开启程序:
Linux下的Qt环境搭建(arm交叉编译)
执行了./qtcreator后就会弹出qtcreator应用程序界面。把路径添加到环境变量会更方便。

安装g++

这是参考链接
在使用qtcreator创建工程之前安装g++,Ubuntu系统默认会有gcc环境,g++环境需要手动安装:
apt-get install g++
如果不安装g++创建工程编译会提示如下
Linux下的Qt环境搭建(arm交叉编译)

安装gl库

Qt5工程会自动导入opengl,所以在linux下需要安装支持的库否则编译会失败,提示如下:
Linux下的Qt环境搭建(arm交叉编译)
直接执行如下指令:
apt-get install build-essential libgl1-mesa-dev
出现如下提示输入’y‘并回车直到结束:
Linux下的Qt环境搭建(arm交叉编译)
到这里就可以通过qtcreator创建应用了,如果只需要在linux上开发到这里就结束了,笔者是需要将应用布置到E9开发板上,所以还需要安装一个交叉编译器,将应用编译生成能在ARM平台运行的应用。

安装交叉编译器

我使用的是天嵌提供的gcc-linaro-5.3-20170216.tar.bz2,解压文件到根目录:
tar -xvf gcc-linaro-5.3-20170216.tar.bz2 /
解压完成过后在/opt下会多一个Embedsky目录。
配置环境变量:
vi /etc/profile
Linux下的Qt环境搭建(arm交叉编译)
使用指令source /etc/profile来使配置生效。
查看环境配置是否成功:
arm-qmake-imx6-qt5.5 -v
Linux下的Qt环境搭建(arm交叉编译)
arm-linux-gnueabihf-g++ -vLinux下的Qt环境搭建(arm交叉编译)
通过如上两个命令能够出现版本信息说明配置OK。

配置交叉编译器到qtcreator

Linux下的Qt环境搭建(arm交叉编译)
Linux下的Qt环境搭建(arm交叉编译)
Linux下的Qt环境搭建(arm交叉编译)
创建工程的时候选择编译器,上面那个编译器编译的就可以在linux平台运行,下面一个是arm平台的编译器:
Linux下的Qt环境搭建(arm交叉编译)

创建应用编译运行

在布局中只放了一个label:
Linux下的Qt环境搭建(arm交叉编译)
Linux下的Qt环境搭建(arm交叉编译)
将生成的文件放到E9板子里面(E9板子运行的文件系统为天嵌提供的rootfs_qt5_IMX6_for_linux_V3.0_R1.6.tgz,文件系统的烧录请参考天嵌提供的手册),这里就将文件放到U盘中挂载到E9上。Linux下的Qt环境搭建(arm交叉编译)
使用指令fdisk -l查看,如下就是U盘信息:
Linux下的Qt环境搭建(arm交叉编译)
如果是fat格式的U盘,挂载命令:mount -t vfat /dev/sda1 /mnt
如果是ntfs格式的U盘,挂载命令:mount -t ntfs-3g /dev/sda1 /mnt
Linux下的Qt环境搭建(arm交叉编译)
(这里把test1改成了test)
把文件从/mnt下拷贝到/opt,并执行:
Linux下的Qt环境搭建(arm交叉编译)
在显示屏上即可看到:
Linux下的Qt环境搭建(arm交叉编译)
到此也就成功了,如果不用qtcreator也可以直接使用指令编译:
到工程目录下使用arm-qmake-imx6-qt5.5生成Makefile:
Linux下的Qt环境搭建(arm交叉编译)
然后使用指令make生成应用:
Linux下的Qt环境搭建(arm交叉编译)
在工程目录下就可以看到生成的应用,和使用qtcreator编译出来的一样可以拷贝到板子里面运行:
Linux下的Qt环境搭建(arm交叉编译)

设置成开机自启动

将test应用设置成开机自启动需要用到应用所处的路径:
Linux下的Qt环境搭建(arm交叉编译)
修改/etc/embedsky_conf文件,最后一行就是系统开机运行的应用路径,test为应用名:
Linux下的Qt环境搭建(arm交叉编译)
到处本文就结束了,如果读者在参照过程中发现有哪里描述不妥请留言告知。