IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Ubuntu Qt安装arm指定的交叉编译环境SDK方式(概述篇) -> 正文阅读

[系统运维]Ubuntu Qt安装arm指定的交叉编译环境SDK方式(概述篇)

一、前言

苦心研究了几天交叉编译环境的安装,因为工作需要,要在一个arm系统上运行程序,正常已经搭配好环境了,见此贴,后来改为SDK的方式更好使用,但是SDK的方式对环境要求特别要,生成的动态库so文件必须与目标机一致,稍有版本不同则会报错,qt版本不同会报错,gcc版本不同会报错,glibc版本高了会报错,总之各种不兼容,必须要求各版本一致,本文主要意指就是为了概述一下安装指定版本的交叉编译环境所需要的过程,自己记录,分享大家。

二、环境

提供一些下载网站,所有安装包均使用离线下载包形式,不涉及在线下载,除非系统配置缺失

三、正文

根据环境,也能知道在Ubuntu中搭建交叉编译环境主要就是gcc交叉编译链、glibc以及qt

GCC交叉编译链

参考1:麒麟V10编译安装GCC9.3

参考2:aarch64-linux-gnu_交叉编译工具链

参考3:Linux环境中安装指定版本的gcc-aarch64-linux-gnu

概述:

在Ubuntu界面的终端查询gcc一般都是系统自带的gcc,架构为x86_64,不可用于交叉编译在arm中运行,所以我们需要安装aarch64-linux-gnu,当选好指定版本的gcc后下载离线包,在下载相应的工具包,有的工具包需要安装,安装工具包参照参考方式,有的不需要安装工具包,直接将工具包放在自定目录,再使用qt配置相关gcc和g++环境即可,有的只需要将arm中的gcc文件夹复制过来也可以直接使用,一般为/usr/lib/gcc/aarch64-linux-gnu文件夹,在配置好环境之后想要通过终端查看版本,需要修改etc/profile文件,在最后几行加入以下代码,#为我其他编译器注释掉的

#export PATH=$PATH:/root/workspace/allwinner/OK3399/host/bin
#export PATH=$PATH:/root/workspace/allwinner/OK3399/gcc9/bin
export PATH=$PATH:/root/workspace/allwinner/OK3399/3399/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin

此时可以使用source profile即可使环境变量生效,无需重启

查看使用aarch64-linux-gnu-gcc -v

GLIBC

概述:

查看当前交叉编译libc或libm版本命令,进入到文件路径下执行命令:strings libm.so.6 | grep GLIBC

glibc的安装方式可以通过install的方式安装指定版本,也可以直接将arm中的glibc路径文件拷贝过来,一般为lib/aarch64-linux-gnu文件,拷贝之后软连接全部消失,重新设置软连接当前系统交叉编译使用的libc和新拷贝的libc-2.xx.so版本

暂未搞明白怎么设置交叉编译器指引指定路径的linc.so.6
软连接libc命令:ln -s /root/workspace/allwinner/OK3399/host/aarch64-buildroot-linux-gnu/sysroot/lib2.27/libc-2.27.so /root/workspace/allwinner/OK3399/host/aarch64-buildroot-linux-gnu/sysroot/lib/libc.so.6
软连接libm命令:ln -s /root/workspace/allwinner/OK3399/host/aarch64-buildroot-linux-gnu/sysroot/lib2.27/libm-2.27.so /root/workspace/allwinner/OK3399/host/aarch64-buildroot-linux-gnu/sysroot/lib/libm.so.6

QT

参考1:qt5在linux下搭建交叉编译环境

概述:

下载目标板的qt版本,按照参考1安装,也可以将开发板的qt安装后文件包复制过来使用,安装之后在ubuntu的qt添加配置gcc和g++,在配置qmake,如果qmake提示错误,在qmake同级文件添加qt.conf文件,内容如下:

[Paths]
Prefix = ..

重新添加qmake即可。?

在最后使用时,使用qt配置GCC和G++决定用的是某一版本的aarch64-linux-gnu-gcc,不论在编译qt源码时使用的是什么交叉编译器GCC,qt编译出来的程序版本决定于qt配置的GCC和G++

四、结语

GCC交叉编译链可以在qt中切换选择

glibc版本只能每次固定设置,指定某个路径后,想要更换glibc版本就要重新软连接

qt版本只要编译好后,也是可以切换选择

欢迎各位大佬点评哪里写的不对,如果不对立即修改,谢谢

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:35:01  更:2022-05-24 18:36:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:01:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码