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 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> arm-none-eabi-gcc源码编译 -> 正文阅读

[嵌入式]arm-none-eabi-gcc源码编译

1. 背景

工作的服务器环境比较老,ARM官网下载的编译好的工具链无法直接运行(详见编译GLIBC),故计划尝试源码编译安装。

2. 源码下载

ARM官网有源码下载的地址,我下载的是gcc-arm-none-eabi-10.3-2021.10-src.tar.bz2

3. 编译

工具链的编译依赖了一些其他的库,好在官网下载的源码包都包含了,不需要额外下载。gcc-arm-none-eabi-10.3-2021.10-src目录下有一份How-to-build-toolchain.pdf,其中介绍了编译的流程,即如下3个步骤。此处我不需要编译mingw的程序以及我工作的Linux环境中Python不满足依赖要求,故跳过这两项内容。

# 解压文件,大约16min
./install-source.sh --skip_steps=howto,md5_checksum,mingw32 > install-source.txt 2>&1
# 编译依赖库,大约2分钟
./build-prerequisites.sh --skip_steps=howto,md5_checksum,mingw > build-prerequisites.sh 2>&1
# 编译工具链,大约10小时
./build-toolchain.sh --skip_steps=gdb-with-python,manual,howto,md5_checksum,mingw,mingw-gdb-with-python,package_sources --build_type=native --with-multilib-list=rmprofile,aprofile > build-toochain.txt 2>&1
# 移动工具链到任意安装目录
rm -rf /home/xflm/apps/gcc-arm-none-eabi-10.3
mv install-native /home/xflm/apps/gcc-arm-none-eabi-10.3 -r
# 尝试运行工具链
/home/xflm/apps/gcc-arm-none-eabi-10.3/bin/arm-none-eabi-gcc -v

4. 插曲

4.1 g++版本太低

第一次编译了6个小时,提示编译失败,我的g++不支持c++11

4.2 python环境不满足

更换了更高版的工具链,重新执行./build-toolchain.sh,编译6小时后,提示编译报错,我的python版本不支持,故增加了--skip_steps=gdb-with-python的选项。

4.3 重新编译也很慢

查看./build-toolchain.sh发现它在编译每一部分前会删除编译目录,其实配置参数变化不大时,不删除也没关系的,我考虑修改这个文件,如下。在上步失败后,修改./build-toolchain.sh,重新执行编译,花了4小时,完成编译。

# 备份该文件
cp build-toolchain.sh build-toolchain.sh.bak
# 取消删除编译目录的动作
sed 's|rm -rf \$BUILD.*&& ||g' -i build-toolchain.sh

4.4 编译成功后重新编译

想测一下这个构建体系有没有追加编译的功能,我只删除了安装目录install-native,执行编译命令,花了4个小时,还是很漫长啊。

./build-toolchain.sh --skip_steps=gdb-with-python,manual,howto,md5_checksum,mingw,mingw-gdb-with-python,package_sources --build_type=native --with-multilib-list=rmprofile,aprofile > build-toochain.txt 2>&1

4.5 文件大小

好奇的查看了一下各个目录的文件大小。

$ du -bs install-native
656367401  # 安装目录大约656M
$ du -bs build-native
20239011796 # 编译目录大约20G
$ du -bs src
1568901066 # 源码大约1.56G

5. 参考

arm-none-eabi-gcc 源码编译 toolchain 构建过程

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-01-16 13:13:51  更:2022-01-16 13:15:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 1:22:36-

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