Armlinux GCC 交叉编译工具

2023-10-19 12:49

本文主要是介绍Armlinux GCC 交叉编译工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Armlinux GCC 交叉编译工具可以通过以下方式获取:



1. 通过现有GNU tools 编译GNU tools源码来获取交叉编译工具。这种方法需要对GNU tools各个源码之间的版本匹配。


2.使用Dan Kegel开发的cross-tool脚本来编译源码。 现在这个脚本是0.43版本,2006后没有新的版本出来。


3.在http://ftp.arm.linux.org.uk/pub/armlinux/toolchain/下载已经编译好的tools chains.


4.http://www.handhelds.org/download/projects/toolchain/ 下载已经编译好的tool chains.


5.http://www.denx.de/en/Software/WebHome 下载已经编译好的tool chains,他称之为ELDK.

   同时这家公司还是U-boot的开发者。

6. http://blog.csdn.net/chenzhixin/archive/2007/01/12/1481442.aspx 通过LFS介绍的方法进行编译。



<1>binutils: 目前(2009.05.31 )最新版本是GNU binutils is 2.19.1.


   要点:

If you have GNU make, we recommend building in a different directory:

    mkdir objdir
    cd objdir
    ../binutils-XXX/configure [options]
    make
    make install

This relies on the VPATH feature of GNU make.



<2>gcc : 目前(2009.05.31 )最新版本是GCC-4.4.0

         From INSTALL in the gcc-4.4.0.tar.gz.

         从GCC-4.3起,安装GCC将依赖于GMP-4.1以上版本和MPFR-2.3.2以上版本。如果将这两个软件包分别解压到GCC源码树的根目录下, 并分别命名为"gmp"和"mpfr",那么GCC的编译程序将自动将两者与GCC一起编译。建议尽可能使用最新的GMP和MPFR版本。


<3>linux kernel : 目前(2009.05.31 )最新版本是2.6.29。 从armlinux 网站可以得知,2.6.0以后的内核不需要到     armlinux网站上下载patch. 只需要在linux kernel org 上下载即可。



<4>glibc: 目前(2009.05.31 )最新版本是2.10,可以使用git进行下载。2.9之前包括2.9可以使用http下载到tar包。

         相应的ports包为Glibc-ports-2.9(为了支持ARM).


for compile: please see the readme and INSTALL in the tar glibc-2.9.tar.gz

要点: 1. glibc2.4以上的版本需要2.6.16以上的LINUX内核版本。          FROM README

         2.推荐使用gcc 3.2以上的编译器来编译glibc.                             FROM FAQ

         3. 推荐使用GNU make version 3.79 or newer.                     FROM  FAQ

         4. For Linux or Hurd, you want binutils 2.13 or higher.      FROM  FAQ

         5. make 过程用到的其他软件:

               * GNU gettext.

* Perl 5 is needed if you wish to test an installation of GNU libc
  as the primary C library.


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

宿主机的安装和配置:

1.从http://fedoraproject.org/zh_CN/get-fedora下载

 

yum install  gcc glibc-devel

        在Fedora中安装g++,使用命令:
        $ yum install gcc-c++
        yum install ncurses
         yum install ncurses-devel
         yum install ncurses-devel

下载上面介绍的软件包


<1>binutils-2.19.1.tar.bz2

<2>linux-2.6.29.4.tar.bz2


<3> GCC
gcc-4.4.0.tar.gz
gmp-4.3.1.tar.bz2
mpfr-2.4.1.tar.gz


<4>Glibc
glibc-2.9.tar.bz2
glibc-ports-2.9.tar.bz2
glibc-2.9-arm_setjmp_fix-1.patch
glibc-2.9-cross_hacks-2.patch
glibc-2.9-libgcc_eh-1.patch
glibc-2.9-localedef_segfault-1.patch
glibc-2.9-nptl_lowlevellock-1.patch


编译步骤

step1: 创建目录和设定环境变量

mkdir -p /opt/package/cross-tools/source

mkdir -p /opt/package/cross-tools/build

mkdir -p /opt/cross-tools


export HOST=i686-pc-linux-gnu

export TARGET=arm-rui-linux-gnueabi

export PREFIX=/opt/cross-tools


step2:将下载的软件包放到source目录中


step3:编译binutils:

cd /opt/package/cross-tools/source

这篇关于Armlinux GCC 交叉编译工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/239890

相关文章

Spring Validation中9个数据校验工具使用指南

《SpringValidation中9个数据校验工具使用指南》SpringValidation作为Spring生态系统的重要组成部分,提供了一套强大而灵活的数据校验机制,本文给大家介绍了Spring... 目录1. Bean Validation基础注解常用注解示例在控制器中应用2. 自定义约束验证器定义自

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Linux系统调试之ltrace工具使用与调试过程

《Linux系统调试之ltrace工具使用与调试过程》:本文主要介绍Linux系统调试之ltrace工具使用与调试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、ltrace 定义与作用二、ltrace 工作原理1. 劫持进程的 PLT/GOT 表2. 重定

使用Java编写一个字符脱敏工具类

《使用Java编写一个字符脱敏工具类》这篇文章主要为大家详细介绍了如何使用Java编写一个字符脱敏工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、字符脱敏工具类2、测试工具类3、测试结果1、字符脱敏工具类import lombok.extern.slf4j.Slf4j

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Java中的工具类命名方法

《Java中的工具类命名方法》:本文主要介绍Java中的工具类究竟如何命名,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java中的工具类究竟如何命名?先来几个例子几种命名方式的比较到底如何命名 ?总结Java中的工具类究竟如何命名?先来几个例子JD

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

基于Java实现回调监听工具类

《基于Java实现回调监听工具类》这篇文章主要为大家详细介绍了如何基于Java实现一个回调监听工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录监听接口类 Listenable实际用法打印结果首先,会用到 函数式接口 Consumer, 通过这个可以解耦回调方法,下面先写一个

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加