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

相关文章

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

sqlite3 命令行工具使用指南

《sqlite3命令行工具使用指南》本文系统介绍sqlite3CLI的启动、数据库操作、元数据查询、数据导入导出及输出格式化命令,涵盖文件管理、备份恢复、性能统计等实用功能,并说明命令分类、SQL语... 目录一、启动与退出二、数据库与文件操作三、元数据查询四、数据操作与导入导出五、查询输出格式化六、实用功

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔