ubuntu下编译交叉编译工具链

交叉编译工具链在arm开发中出很重要的位置,开发之前肯定要先有编译器 连接器 汇编器等基础的编译工具。arm体系是一个很复杂的体系,里面的指令有数个版本不同的体系level还有很多自己的特点 ,这就要求编译器也要出几个版本的针对不同的应用。

当然网络上存在很多的编译器的资源,但是作为一个嵌入式开发人员还是要会自己构建出来一个工具链的,做到只能说不想做,不能说做不到,不然真的遇到特殊应用的需要无法作出编译器项目就直接挂了。

整个工具链的编译过程如果采用纯手工的step by step  真的需要几天时间,并且对于意志力的要求会很高,因为每一步都会产生很多的问题。对于整个文件结构,系统环境,需要关联的各种库要求很复杂,尤其是很多库的版本组合是很难确定的。

这里我们用一个先用一个简单的方法区进行,就是利用一个存在的强大脚本crosstool-ng  来编译出工具链

这个脚本可以帮助我们下载需要的文件,做目录的准备等工作。

下载地址是在 http://crosstool-ng.org/  这里想一个ftp站 ,我用的事最新的1.19.0版本

虽然crosstool-ng 可以帮我们自动的下载关联文件,但是对于系统的环境还是我们自己需要搞定的,有几个是系统必须有的

这里我们就直接系统联网直接更新了

#sudo apt-get install g++ libncurses5-dev bison flex texinfo automake libtool patch gcj cvs gawk

这些要安装的工具中  gcj实力面比较复杂的  ,需要手动下载,这里就自己在网络下嗖嗖。

安装步骤

1.到home文件路径下   就是家目录,不是HOME 目录

2.建立真个编译运行的工作目录

#mkdir crosstool

3.拷贝下载脚本压缩文件到工作目录 并解压

#cp ~/下载/tar/crosstool-ng-1.9.0.tar.bz2  ./crosstool

#tar jxvf crosstool-ng-1.9.0.tar.bz2

4.建立需要的文件目录结构

进入工作目录

#cd crosstool

#mkdir crosstool-build

#mkdir crosstool-install

#mkdir src

5.进入脚本目录 运行脚本 拷贝依赖文件到工作目录

#cd crosstool-ng-1.19.0

#./configure  --prefix=~/crosstool/crosstool-install

#make

#make install

#cp ../crosstool-ng-1.9.0/samples/arm-unknown-linux-gnueabi/*   ./

6.必要的修改

#mv crosstool.config .config

7.运行图形界面配置工具编译过程和编译选项

#../crosstool-install/bin/ct-ng menuconfig

会出来一个界面进行选择 y  选择  n不选

几个关键配置

Paths and misc options --->   添(/home/xuww/crosstool/src) Local tarballs directory 存放源码包围之

(/home/yao/crosstool/tools) Prefix directory 编译器安装路径,也就是编译结果生成的编译器存在的位置

Target options  --->

*** Target optimisations ***

(armv4t) Architecture level

(arm9tdmi) Emit assembly for CPU

(arm920t) Tune for CPU

编译的线程  回教快编译速度,不宜超过四

Paths and misc options  --->

(2) Number of parallel jobs

关闭java编译器

C compiler  --->

[ ] Java

缺省是开得  中间有星号   按N

设置编译器前缀中的第二个字符  一般是公司名吗

Toolchain options  --->  (xuww) Tuple‘s vendor string

C compiler  --->(crosstool-NG-${CT_VERSION}-yh) gcc ID string #cd ~/crosstool/crosstool-build

8.开始进入编译的目录 crosstool-build

#cd ~/crosstool/crosstool-build

#../crosstool-install/bin/ct-ng  build

就开始等吧   估计网速可以的换也就一个小时  如果网速慢机器破 就挂机吧   两小时以上那

ubuntu下编译交叉编译工具链

时间: 2024-10-17 06:40:11

ubuntu下编译交叉编译工具链的相关文章

ubuntu下安装交叉编译工具链

/usr/localmkdir arm 将文件file1复制成文件file2 cp file1 file2 /cp /mnt/hgfs/UbuntuGX/arm-2008q3-linux.tar.gz /usr/local/arm/tar zxvf arm-linux-gcc-4.3.2.tgz vi /etc/profileexport PATH=/usr/sbin/:/bin:/usr/bin:/sbin:/usr/local/arm/arm-2008q3-linux/bin cd /usr

ubuntu下stm32交叉工具链 构建过程1

说实话,这个过程将是十分折腾的过程,而且不一定成功,所以,我的很多朋友在听到我说要做这件事情的时候,都给我泼冷水. 但是,我还是想努力,因为这次我是下决心,非要反微软到底. 就算这个过程再难——我脑海里经常闪现起 勇敢的心 里 华伦士 最后受尽极性 仍然高喊 自由的情景. 我对自己说,也是激励自己:只有这样的人才有权利追求和获得自由. 这件事,难就难在我发现我光是为了获取一个可用的gcc编译器,在codesourcery codebench上下载下来都这么费劲. 我的网络速度相当快,但不知为什么

Linux下获取arm的交叉编译工具链

转载请注明文章:Linux下获取arm的交叉编译工具链 出处:多客博图 这里介绍,Linux下获取arm的交叉编译工具链,比如arm-linux-gnueabihf-gcc.arm-linux-gneabihf-gcc等. 前言 这里有一个专门的说法: “arm-linux-gnueabihf-gcc是由 Linaro 公司基于GCC推出的的ARM交叉编译工具.可用于交叉编译ARM系统中所有环节的代码,包括裸机程序.u-boot.Linux kernel.filesystem和App应用程序.使

交叉编译工具链介绍《Building Embedded Linux Systems》

1.前言 配置和编译一个合适的GNU工具链是相对复杂的并且需要很精细的操作,包括你需要对不同软件库之间的依赖关系.它们的各自的任务,不同软件库版本情况都有比较好的了解,编译工具链是一个乏味的工作. 2.制作之前需要了解的一些术语与名称 1)build:你编译你的工具链时所使用的编译系统. 2)host:交叉编译工具链运行在的主机系统. 3)target:你的交叉编译工具链所生成的可执行文件所要运行的目标系统. 在一些通用非嵌入式的使用,以上三个必须是一样的.但是大部分嵌入式开发中,build跟h

【Linux学习】Ubuntu下嵌入式交叉编译环境arm-linux-gcc搭建

(1)首先选择一个路径用来存放arm-linux-gcc.我选用的是/home/book,并在下面建立一个文件夹arm-linux-gcc. (2)利用cp EABI-4.3.3_Emdedsky_20100610.tar.bz2 arm-linux-gcc,将压缩包EABI-4.3.3_Emdedsky_20100610.tar.bz2复制到arm-linux-gcc中 (3)解压EABI-4.3.3_Emdedsky_20100610.tar.bz2 记录下文件的存放目录: (4)配置系统环

树莓派学习笔记——交叉编译工具链

0.前言 [1]为什么要使用交叉编译 交叉编译工具较快开发的速度.树莓派中已经安装了gcc工具链,可在树莓派中直接编译源代码生成可执行文件.于此同时,PC机上也可使用gcc工具链生成可执行代码,但是和树莓派上的gcc工具不同,PC机上的gcc工具生成intel或amd芯片上可执行的代码,但树莓派却是arm系列的芯片,显然存在不小的差异.那么使用交叉工具链便可在PC机上开发树莓派中可执行程序. 虽然树莓派的主频可达700MHz远高于一般的嵌入式系统,但相比于PC机其性能还是差些,使用交叉工具链可节

64位的ubuntu14.04 LTS安装 Linux交叉编译工具链及32位“ia32-libs”依赖库

ubuntu又迎来了其新一代的长期支持版本 14.04 LTS,其带来了许多令人期待的新特新,遂决定进行升级. 装好了64位版本及安装 Linux交叉编译工具链 运行GCC,${CROSS_COMPILE}gcc -v 依然会提示那经典的“没有那个文件或目录”提示. 根据以往的经验,对于64位版本ubuntu我们需要安装“ia32-libs”依赖库. 遂输入: sudo apt-get install ia32-lib 却提示查无此货? ubuntu 14.04强制安装ia32-libs 参考u

Android开发实践:Android交叉编译工具链的使用

前面2篇文章分别介绍了Android NDK编译的命令行参数,以及如何在任意目录使用Android.mk来编译本地c/c++代码,Andriod.mk和ndk-build只不过是Android官方提供了一套封装过的Android交叉编译环境而已,其实,你可以不用它,而直接通过传统的Makefile文件来编译你的c/c++代码的,本文即介绍如何直接通过传统的Makefile文件来编译可用于Android平台的库文件. 经常搞嵌入式开发的朋友对于交叉编译环境应该并不陌生,说白了,就是一组运行在x86

交叉编译工具链

1.嵌入式开发模型-交叉开发 在嵌入式开发过程中有宿主机和目标机的角色之分:宿主机是执行编译.链接嵌入式软件的计算机:目标机是运行嵌入式软件的硬件平台. 在宿主机执行编译的流程如下: 2.交叉编译工具链详解 参考: http://www.crifan.com/files/doc/docbook/cross_compile/release/html/cross_compile.html 3.制作交叉编译工具 参考: http://www.crifan.com/files/doc/docbook/c