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

相关文章

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

基于Python打造一个全能文本处理工具

《基于Python打造一个全能文本处理工具》:本文主要介绍一个基于Python+Tkinter开发的全功能本地化文本处理工具,它不仅具备基础的格式转换功能,更集成了中文特色处理等实用功能,有需要的... 目录1. 概述:当文本处理遇上python图形界面2. 功能全景图:六大核心模块解析3.运行效果4. 相

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四

基于Python实现高效PPT转图片工具

《基于Python实现高效PPT转图片工具》在日常工作中,PPT是我们常用的演示工具,但有时候我们需要将PPT的内容提取为图片格式以便于展示或保存,所以本文将用Python实现PPT转PNG工具,希望... 目录1. 概述2. 功能使用2.1 安装依赖2.2 使用步骤2.3 代码实现2.4 GUI界面3.效

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优