arm-none-linux-gnueabi-gcc 移植,建立ARM交叉编译环境 (arm-none-linux-gnueabi-gcc with EABI)

本文详细记录了如何在Ubuntu 10.04和SUSE 11.2上搭建arm-none-linux-gnueabi-gcc的交叉编译环境,包括下载源码、建立binutils、bootstrap gcc、glibc和完整版gcc的过程,以及解决编译过程中遇到的问题。作者分享了搭建过程中的一些经验和技巧,旨在帮助开发者避免常见错误,提高工作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天终于把交叉编译环境、移植内核和制作root文件系统在arm开发板上顺利跑通了。期间有的步骤很顺利,但更多的是被诸多问题困扰,比如最后一个不起眼的小问题导致文件系统无法加载,郁闷了我一个星期,最终通过分析慢慢发现了这个bug。还有各源码包版本的问题,而且网上很多介绍都是基于旧版本的。我这里全部用最新或较新的版本,当然,至于新旧版本到底哪个更好更合适,这是个智者见智的论题,不在本文讨论之列。我坚信很多人也遇到过或者即将遇到我曾经历过的错误和问题,因此我觉得把我过去两周做过的相关工作,详细地写下来,希望对大家有所帮助!

首先是平台和环境 ,我过去两周都是基于vmware 中ubuntu 10.04的,但是我发现ubuntu这个很火的桌面linux发行版本并不适合进行嵌入式开发,典型的麻烦就是系统缺少很多库、服务等等,需要自己手动安装,增加了不少额外的工作,和我以前用的SuSe 9比麻烦不少。不过所以现在我干脆全新装了一个SUSE 11.2 Enterprise Server 32bit,把过去的工作重复一遍,边编译边纪录,力求不遗漏细节!

过程预览:

1,准备工作,包括下载源码包、补丁、建立文件夹和设置环境变量等

2,建立内核头文件

3,建立binutils

4,建立bootstrap gcc

5,建立glibc

6,建立完整版本gcc

7,测试hello world

现在就让我们开始吧!

1 准备工作

我使用的源码包和补丁 如下:

linux-2.6.34.tar.bz2

binutils-2.20.tar.gz

gcc-4.3.5.tar.bz2

glibc-2.11.tar.gz

glibc-linuxthreads-2.5.tar.bz2

glibc-ports-2.11.tar.bz2

glibc-2.11.2-gcc_fix-1.patch

至于怎么得到这些源码包,找google吧!

建立工作目录

自己选一个合适的地方,建立一个总文件夹Embedded,并且在其下建立 build-tools、kernel和tools三个子文件夹、我们以后的操作就都在这里进行了。

$ mkdir Embedded

$ cd Embedded

$ mkdir build-tools    kernel     tool

$ ls

build-tools    kernel     tool

各文件夹作用如下:

build-tools : 保存binutils、gcc 和 glibc的源代码和用来编译这些源代码的目录。

kernel        : 保存内核源代码和补丁。

tools          : 保存编译好的交叉编译工具和库文件。

然后在build-tools文件夹中建立如下子文件夹:

$ cd build-tools

$ mkdir build-binutils   build-boot-gcc   build-glibc  build-gcc

buil

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值