# 安装的环境 ubuntu18.04 只要是Ubuntu命令都可执行。
ubuntu和虚拟机的安装教程就自己看我专栏了。
1、交叉编译工具安装
(方式1)
依次在Ubuntu输入以下命令:
sudo apt-get install gcc-arm-linux-gnueabihf
sudo apt-get install g++-arm-linux-gnueabihf
sudo apt install gcc-aarch64-linux-gnu
sudo apt install g++-aarch64-linux-gnu
第一行命令 “sudo apt-get install gcc-arm-linux-gnueabihf” 安装了针对ARM架构的32位GNU C编译器。
第二行命令 “sudo apt-get install g++-arm-linux-gnueabihf” 安装了针对ARM架构的32位GNU C++编译器。
第三行命令 “sudo apt install gcc-aarch64-linux-gnu” 安装了针对ARM架构的64位GNU C编译器。
第四行命令 “sudo apt install g++-aarch64-linux-gnu” 安装了针对ARM架构的64位GNU C++编译器。
(方式2)
从ARM官网下载交叉编译工具,解压后,配置全局变量,自行选择适合自己的哈。
ARM交叉编译器:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
配置交叉编译器及glibc版本问题
1、查看glibc所支持的版本
strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_
2、配置全局变量两种方式
vim /etc/profile
vim /etc/environment
或者(对应权限下对应配置文件 ,用户权限和root权限下不共用)
export PATH=/root/qtArm64Toolchain/Ambarella_Linaro_Toolchain_2016.02_For_S5/linaro-aarch64-
2016.02-gcc5.3/bin:$PATH #没验证
或者
export PATH="$PATH:/usr/aarch64-linux-gnu_8.2/bin"
重新加载,使配置生效:
source /etc/profile
3、编译器版本选择
sudo apt install gcc-8-aarch64-linux-gnu
卸载软件
sudo apt-get remove --purge gcc-aarch64-linux-gnu
安装路径:
可执行文件在 /usr 下
通过aptget 安装的交叉编译工具 aarch64-linux-gnu 的 libc.so.6 文件在/usr/aarch64-linux-gnu/lib/ 下通过下载的软件包 ,解压就能用,需要配置环境变量
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
对应的libc.so.6文件在
gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu/aarch64-linux-gnu/libc/lib64/ 下
查看磁盘大小:
df -hl
2. arm版本的qmake编译安装
创建arm版本qmake的文件夹,这里我选择放在qt安装路径下,文件夹为arm_64_build,qt版本为5.12.2,x86版本的qmake的文件夹为5.12.2
进入到arm_64_build文件夹下:
%生成配置文件 qtbase/bin/qt.conf 文件
sudo ../5.12.2/Src/configure -prefix $PWD/qtbase -opensource -xplatform linux-aarch64-gnu-g++ -no-opengl -nomake examples
%编译生成arm版本的qmake,时间较漫长
sudo make
%安装,安装的路径为qtbase/bin下
sudo make install
123456
- 在make时遇到的问题
- error: ‘SIOCGSTAMP’ undeclared (first use in this function); did you mean ‘SIOCGARP’?
解决:在5.12.2中找到socketcanbackend.cpp文件,添加头文件#include <linux/sockios.h>
- python: not found %ubuntu内安装的python名字默认是python3 ,将 python3 链接到 python
解决:sudo ln -s /usr/bin/python3 /usr/bin/python
- make过程中可能报一些奇怪的错误,常见为
- root权限下全局变量已配置且可用,但sudo执行时仍找不到编译器,切换到root权限下 去掉sudo 直接运行
- make编译过程中提示版本不匹配,确认交叉编译工具无误重新make几次,当切换交叉编译工具版本,重新make时需要将旧的文件全部删除,重新生成配置文件,再运行make
- 安装时提示qt4 无法安装,不影响,可以直接忽视,如在Qt工程编译时报错,重新运行make 并安装即可
- qmake 的版本和交叉编译工具链的 版本需要对应,由于glibc版本不同,会报错找不到对应的库文件
- 对应的qmake可执行文件在 qt_base/bin/路径下
3. qt配置
打开Qt ,工具->选项
Kits选项内进行配置:
- 编译器配置:使用apt_get安装的交叉编译工具,可以使用qt默认的编译器配置,不需要重新配置
不是apt-get 安装时,交叉编译器的路径和qt默认的编译器路径不一致,需要手动添加:
Qt Versions选项下添加一个新的,选择对应的qmake路径:
添加一个新的构建套件,选择设备类型,选择编译器,选择qt版本,这里qt版本和编译器版本需要一致。
在工程中添加arm版本的构建套件,编译成功。
作者:Qt历险记
原文:https://mp.weixin.qq.com/s/IjRneUtn6pXgQt_oAXCGBA
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。