当前位置: 首页 > news >正文

Ubuntu交叉编译器工具链安装

声明

本博客所记录的关于正点原子i.MX6ULL开发板的学习笔记,(内容参照正点原子I.MX6U嵌入式linux驱动开发指南,可在正点原子官方获取正点原子Linux开发板 — 正点原子资料下载中心 1.0.0 文档,旨在如实记录我在学校学习该开发板过程中所遭遇的各类问题以及详细的解决办法。其初衷纯粹是为了个人知识梳理、学习总结以及日后回顾查阅方便,同时也期望能为同样在学习这款开发板的同学或爱好者提供一些解决问题的思路和参考。我尽力保证内容的准确性和可靠性,但由于个人知识水平和实践经验有限,若存在错误或不严谨之处,恳请各位读者批评指正。

责任声明:虽然我力求提供有效的问题解决办法,但由于开发板使用环境、硬件差异、软件版本等多种因素的影响,我的笔记内容不一定适用于所有情况。对于因参考本笔记而导致的任何直接或间接损失,我不承担任何法律责任。使用本笔记内容的读者应自行承担相关风险,并在必要时寻求专业技术支持。

1 交叉编译器安装

Ubuntu 自带的 gcc 编译器是针对 X86 架构的!要编译的 ARM 架构的代码,需要一个在 X86 架构的 PC 上运行,可以编译 ARM 架构代码的 GCC 编译器,这个编译器就叫做交叉编译器,总结一下交叉编译器就是:

1、它肯定是一个 GCC 编译器。

2、这个 GCC 编译器是运行在 X86 架构的 PC 上的。

3、这个 GCC 编译器是编译 ARM 架构代码的,也就是编译出来的可执行文件是在 ARM 芯片上运行的。

交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。

交叉编译器有很多种,本文所采用的编译器是参照正点原子官方教程的,使用 Linaro 出品的交叉编译器

Linaro GCC 编译器下载地址如下:

Linaro Releases

目前最新的版本是7.5.0,但是正点原子教程里面说明7.3.1 版本编译器的时候发现编译完成后的 uboot 无法运行。所以这里作为记录笔记与正点原子官方教程保持一致,采用4.9版本的编译器。感兴趣的可以试试最新版本。

下载链接:Linaro Releases

根据自己所使用的 Ubuntu 系统类型选择合适的版本

32位选择:

64位选择:

或者去正点原子官网下载i.MX6ULL Linux阿尔法开发板 — 正点原子资料下载中心 1.0.0 文档,在5、开发工具->1、交叉编译器中可以找到(推荐)

在当前用户根目录下创建了一个名为“linux”的文件夹,在这个 linux 文件夹里面再创建一个名为“tool”的文件夹,用来存放一些开发工具。使用前面已经安装好的 FileZilla (参照Ubuntu 和 Windows 文件互传(FTP)这篇文章)将交叉编译器拷贝到 Ubuntu 中刚刚新建的“tool”文件夹中

在 Ubuntu 中创建目录: /usr/local/arm,命令如下:

sudo mkdir /usr/local/arm

完成以后将刚刚拷贝的交叉编译器复制到/usr/local/arm 这个目录中,在终端使用命令“ cd” 进入 到 存放 有交叉编译器的目录, 比如 我 前面 将交 叉 编译 器拷 贝 到了 目录“/home/zuozhongkai/linux/tool”中,然后使用如下命令将交叉编译器复制到/usr/local/arm 中:

拷贝完成以后在/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-linuxgnueabihf”的文件夹,这个文件夹里面就是我们的交叉编译工具链。

修改环境变量,使用 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 系统,交叉编译工具链(编译器)就安装成功了。

2. 安装相关库

在使用交叉编译器之前还需要安装一下其它的库,命令如下:

sudo apt-get install lsb-core lib32stdc++6

若Ubuntu 版本过高可能会出现报错,如下所示:

因为在较新的 Ubuntu 系统(如 20.04、22.04、24.04)中,lsb-core被拆分成更小的包,通常改用 lsb-release 或其他相关包。

解决方法:

1:直接安装lsb-release(推荐)

sudo apt update

sudo apt install lsb-release lib32stdc++6

2:启用 Universe 仓库后重试

sudo add-apt-repository universe

sudo apt update

sudo apt install lsb-core lib32stdc++6

3:安装完整的 LSB 组件(适用于旧版系统)

如果系统较旧(如 Ubuntu 18.04 或更早),可以尝试:

sudo apt install lsb-core lsb-release lib32stdc++6 

3. 交叉编译器验证

查看一下交叉编译工具的版本号,输入如下命令:

arm-linux-gnueabihf-gcc -v

如果交叉编译器安装正确的话就会显示版本号

可以看出当前交叉编译器的版本号为 4.9.4,说明交叉编译工具链安装成功。

http://www.dtcms.com/a/106888.html

相关文章:

  • SpringBoot集成OAuth2.0
  • [MySQL初阶]MySQL数据库基础
  • jdk21新特性详解使用总结
  • TypeScript extends 全面解析
  • work02_1 计算这两个日期之间相隔的天数
  • 手机改了IP地址,定位位置会改变吗?
  • Java面试黄金宝典29
  • 蓝桥备赛指南(13):填空签到题(1-1)
  • 车辆控制解决方案
  • 如何通过安当TDE透明加密实现MySQL数据库加密与解密:应用免改造,字段与整库加密全解析
  • MySQL主从复制(四)
  • WEB安全--文件上传漏洞--其他绕过方式
  • OpenLayers:封装Overlay的方法
  • WASM I/O 2025 | MoonBit获Kotlin核心开发,Golem Cloud CEO高度评价
  • 人工智能赋能管理系统,如何实现智能化决策?
  • 操作系统(中断 异常 陷阱) ─── linux第28课
  • 脑影像分析软件推荐 | JuSpace
  • 【kubernetes】pod拉取镜像的策略
  • 关于SQL子查询的使用策略
  • ​自动化网络架构搜索(Neural Architecture Search,NAS)
  • RNN模型与NLP应用——(9/9)Self-Attention(自注意力机制)
  • 1Panel 面板 宝塔面板 Ubuntu 24.04
  • 叁仟数智指路机器人是否支持远程监控和管理?
  • Rclone同步Linux数据到google云盘
  • 【SQL】MySQL进阶3:Innodb引擎结构,事务与ACID的实现
  • Apifox Helper 与 Swagger3 区别
  • 一个服务器算分布式吗,分布式需要几个服务器
  • 电子企业MES管理系统智能排产与动态调度优化
  • 化工网平台API接口开发实战:从接入到数据解析‌
  • 递归(实践版)