Qt 交叉编译工具配置教程(在嵌入式开发板运行应用程序)

# 安装的环境 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

Qt 交叉编译工具配置教程(在嵌入式开发板运行应用程序)
Qt 交叉编译工具配置教程(在嵌入式开发板运行应用程序)

配置交叉编译器及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

Qt 交叉编译工具配置教程(在嵌入式开发板运行应用程序)

进入到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时遇到的问题
  1. error: ‘SIOCGSTAMP’ undeclared (first use in this function); did you mean ‘SIOCGARP’?

解决:在5.12.2中找到socketcanbackend.cpp文件,添加头文件#include <linux/sockios.h>

  1. python: not found %ubuntu内安装的python名字默认是python3 ,将 python3 链接到 python

解决:sudo ln -s /usr/bin/python3 /usr/bin/python

  1. make过程中可能报一些奇怪的错误,常见为
  • root权限下全局变量已配置且可用,但sudo执行时仍找不到编译器,切换到root权限下 去掉sudo 直接运行
  • make编译过程中提示版本不匹配,确认交叉编译工具无误重新make几次,当切换交叉编译工具版本,重新make时需要将旧的文件全部删除,重新生成配置文件,再运行make
  • 安装时提示qt4 无法安装,不影响,可以直接忽视,如在Qt工程编译时报错,重新运行make 并安装即可
  • qmake 的版本和交叉编译工具链的 版本需要对应,由于glibc版本不同,会报错找不到对应的库文件
Qt 交叉编译工具配置教程(在嵌入式开发板运行应用程序)
  • 对应的qmake可执行文件在 qt_base/bin/路径下

3. qt配置

打开Qt ,工具->选项

Qt 交叉编译工具配置教程(在嵌入式开发板运行应用程序)

Kits选项内进行配置:

  1. 编译器配置:使用apt_get安装的交叉编译工具,可以使用qt默认的编译器配置,不需要重新配置
Qt 交叉编译工具配置教程(在嵌入式开发板运行应用程序)

不是apt-get 安装时,交叉编译器的路径和qt默认的编译器路径不一致,需要手动添加:

Qt 交叉编译工具配置教程(在嵌入式开发板运行应用程序)

Qt Versions选项下添加一个新的,选择对应的qmake路径:

Qt 交叉编译工具配置教程(在嵌入式开发板运行应用程序)

添加一个新的构建套件,选择设备类型,选择编译器,选择qt版本,这里qt版本和编译器版本需要一致。

Qt 交叉编译工具配置教程(在嵌入式开发板运行应用程序)

在工程中添加arm版本的构建套件,编译成功。

Qt 交叉编译工具配置教程(在嵌入式开发板运行应用程序)

作者:Qt历险记
原文:https://mp.weixin.qq.com/s/IjRneUtn6pXgQt_oAXCGBA

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论