嵌入式Qt移植前期准备
概述
Qt官方在哪些平台/系统有支持?
-
Windows
-
Ubuntu
-
IOS
为什么要进行Qt移植?
-
自制系统,如BusyBox简易系统,希望能运行Qt
-
厂家提供的Qt库太大,太全,占空间
-
版本升级,想用其它好用的Qt版本
嵌入式Qt移植有几种方法?
-
编译Qt源码,得到Qt库文件,部署到嵌入式系统中
-
Qt源码
-
Qt源码在官网可以找到
-
下载这个源码后编译
-
可以得到Qt库.so
- Windows下是.dll
-
-
-
利用开源的嵌入式Linux系统自动构建框架Buildroot或者Yocto
-
Buildroot
- 可以很方便的把这个QT给它构建出来
-
Yocto
- 容易编译出错,而且十分的巨大
-
嵌入式Qt移植方法对比说明
嵌入式Qt移植之编译器与根文件系统准备
安装通用型交叉编译器
-
简介
-
编译器需求
-
ARM 裸机、Uboot 移植、Linux 移植都需要在 Ubuntu 系统下进行编译
-
编译这些代码需要编译器的支持
-
-
编译器类型
- Ubuntu 自带的 GCC 编译器是针对 X86 架构的
-
交叉编译器
-
由于编译目标是 ARM 架构的代码,需要一个在 X86 架构的 PC 上运行、可以编译 ARM 架构代码的 GCC 编译器
-
这种编译器称为交叉编译器
-
-
交叉编译器的特性
-
GCC 编译器:必须是一个 GCC 编译器
-
运行平台:运行在 X86 架构的 PC 上
-
编译目标:编译 ARM 架构代码,生成的可执行文件在 ARM 芯片上运行
-
“交叉”含义:在一个架构上编译另一个架构的代码,相当于两种架构“交叉”起来
-
-
交叉编译器的选择
-
市场上有多种交叉编译器可供选择
-
这里推荐使用 Linaro 出品的交叉编译器
-
-
关于 Linaro
-
Linaro 是一家非营利性质的开源软件工程公司
-
Linaro 开发了多种软件,最著名的是 Linaro GCC 编译工具链(编译器)
-
-
-
下载
-
Linaro GCC 编译器下载地址
-
https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/
-
Linaro 下载界面
-
-
I.MX6U-ALPHA 开发板是一个 Cortex-A7 内核的开发板,因此选择 arm-linux-gnueabihf,点击后面的“Binaries”进入可执行文件下载界面
-
4.9 版本的编译器可以正常工作,所以我们需要下载4.9版本的编译器
-
https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/
-
4.9.4 版本编译器下载
-
Ubuntu 16.04 和18.04 是 64 位系统,因此选择gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
-
这两种交叉编译器已经下载好
- 存放在开发板光盘中,路径:5、开发工具->1、交叉编译器
-
-
-
使用FileZilla 将交叉编译器拷贝到 Ubuntu 中
-
在Ubuntu 中创建目录:/usr/local/arm
- sudo mkdir /usr/local/arm
-
使用如下命令将交叉编译器复制到 /usr/local/arm 中
- sudo cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f
-
在/usr/local/arm 目录中对交叉编译工具进行解压
-
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
-
等待解压完成,解压完成以后会生成一个名为“gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-
gnueabihf”的文件夹
-
-
修改环境变量,使用VI 打开/etc/profile 文件
- sudo vi /etc/profile
-
打开/etc/profile 以后,在最后面输入如下所示内容
-
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
-
-
修改好以后就保存退出,重启 Ubuntu 系统,交叉编译工具链(编译器)就安装成功了
-
交叉编译器验证
-
查看一下交叉编译工具的版本号
-
arm-linux-gnueabihf-gcc -v
-
-
根文件系统的准备
- 驱动开发时会构建好