1. 在/usr/local下新建文件夹:arm
  [guo@archlinux local]$sudo mkdir arm

2. 将交叉编译工具拷贝到arm文件夹中
  [guo@archlinux arm]$sudo mv ~/Downloads/arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 .

[guo@archlinux arm]$ ls
  arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

3. 解压
  [guo@archlinux arm]$ sudo tar -xjvf arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
 
  [guo@archlinux arm]$ ls
  arm-2011.03  arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

4. 添加到PATH环境变量
  [guo@archlinux arm]$ sudo gedit ~/.bashrc
  在文件的最后写入以下内容:
  PATH=$PATH:/usr/local/arm/arm-2011.03/bin

5. 运行.bashrc文件,使设置生效。
  进入用户主目录:
  [guo@archlinux arm]$ cd
  运行:
  [guo@archlinux ~]$ . .bashrc

6. 验证交叉编译器是否安装正确
  输入[guo@archlinux ~]$ arm-none-linux-gnueabi-后,按2下TAB键,如果能够看到很多
  arm-none-linux-gnueabi-前缀的命令,基本可以确定安装成功。

arm-none-linux-gnueabi-addr2line  arm-none-linux-gnueabi-gdbtui
  arm-none-linux-gnueabi-ar         arm-none-linux-gnueabi-gprof
  arm-none-linux-gnueabi-as         arm-none-linux-gnueabi-ld
  arm-none-linux-gnueabi-c++        arm-none-linux-gnueabi-nm
  arm-none-linux-gnueabi-c++filt    arm-none-linux-gnueabi-objcopy
  arm-none-linux-gnueabi-cpp        arm-none-linux-gnueabi-objdump
  arm-none-linux-gnueabi-elfedit    arm-none-linux-gnueabi-ranlib
  arm-none-linux-gnueabi-g++        arm-none-linux-gnueabi-readelf
  arm-none-linux-gnueabi-gcc        arm-none-linux-gnueabi-size
  arm-none-linux-gnueabi-gcc-4.5.2  arm-none-linux-gnueabi-sprite
  arm-none-linux-gnueabi-gcov       arm-none-linux-gnueabi-strings
  arm-none-linux-gnueabi-gdb        arm-none-linux-gnueabi-strip

7. 让64位的系统能够运行和编译32位程序。
  [guo@archlinux ~]$ arm-none-linux-gnueabi-gcc -v
  如果不成功,那就有可能需要安装32位运行库。
http://blog.csdn.net/qq_15345805/article/details/70864136
https://wiki.archlinux.org/index.php/Multilib
  编辑 /etc/pacman.conf,取消下面内容的注释:
  [multilib]
  Include = /etc/pacman.d/mirrorlist

[guo@archlinux ~]$ sudo nano /etc/pacman.conf
  [sudo] password for guo:
  [guo@archlinux ~]$

更新软件包列表并升级系统
  [guo@archlinux ~]$ sudo pacman -Syu

如果不管用,用命令安装32位运行库
  [guo@archlinux ~]$ sudo pacman -S lib32-glibc

8. 测试工具链
  编写程序文件hello.c,输入以下内容:
  #include <stdio.h>

int main()
  {
    printf("hello world!\n");

return 0;
  }

[guo@archlinux ~]$ cd /tmp
  [guo@archlinux tmp]$ nano hello.c
  [guo@archlinux tmp]$ cat hello.c
  #include <stdio.h>

int main()
  {
    printf("hello world!\n");

return 0;
  }
  [guo@archlinux tmp]$

通过以下命令进行编译,编译后生成名为hello的可执行文件,通过file命令可以查看文件的类型。
  当显示以下信息时表明交叉工具链正常安装了,通过编译生成了ARM体系可执行的文件。
  注意,通过该交叉编译链编译的可执行文件只能在ARM体系下执行,不能在基于X86的普通PC上执行。
  [guo@archlinux tmp]$ arm-none-linux-gnueabi-gcc hello.c -o hello
  [guo@archlinux tmp]$ ls
  fcitx-socket-:0  hello.c                sogou-qimpanel-cellguo
  hello            serverauth.xlA5PX22fa  sogou-qimpanel:0.pid
  [guo@archlinux tmp]$ file hello
  hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 2.6.16, not stripped

更详细内容参考以下博客:

交叉编译工具链(GCC)建立 -- 写的非常棒(两篇写的非常相似)
http://blog.chinaunix.net/uid-7762106-id-146774.html
http://blog.chinaunix.net/uid-8107907-id-2034159.html

交叉编译工具链 -- 主要是介绍
http://blog.csdn.net/qfnu08zzr/article/details/48264331

交叉编译详解
https://www.crifan.com/files/doc/docbook/cross_compile/release/html/cross_compile.html

archlinux安装交叉编译工具链的更多相关文章

  1. Linux 安装交叉编译工具链

    交叉编译工具链下载地址: 链接:http://pan.baidu.com/s/1dE7P9rb 密码:300i 声明:下面每一步中的“pwd”指令都是为了看清楚当前的目录,没有其他实际意义. 系统:u ...

  2. 64位ubuntu安装交叉编译工具链,显示找不到命令

    是因为Ubuntu64位版本已不支持ia32-libs的软件包,而是使用了lib32ncurses5.lib32z1软件包做为替代, 所以在Ubuntu16.04版本当中应该安装执行: sudo ap ...

  3. ubuntu安装交叉编译工具链

    一.sudo su 切换到root用户权限 二.将arm-linux-gcc-4.3.2.tgz从windows拷贝到Linux  /home/ttt/arm-linux-gcc-4.3.2.tgz ...

  4. ubuntu下安装交叉编译工具链

    /usr/localmkdir arm 将文件file1复制成文件file2 cp file1 file2 /cp /mnt/hgfs/UbuntuGX/arm-2008q3-linux.tar.gz ...

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

    ubuntu又迎来了其新一代的长期支持版本 14.04 LTS,其带来了许多令人期待的新特新,遂决定进行升级. 装好了64位版本及安装 Linux交叉编译工具链 运行GCC,${CROSS_COMPI ...

  6. hisiv100交叉编译工具链安装

    hisi交叉编译工具链安装 一.         摘要: 交叉编译简单的说,就是A机器上编译生成,运行在B机器上.那么在A机器上的编译工具安装,就是本文所要描述的内容. 工欲善其事必先利其器,所以交叉 ...

  7. CROSSTOOL-NG建立交叉编译工具链

    CROSSTOOL-NG建立交叉编译工具链 因为考试和学习的原因我已经一段时间没有玩我的JZ2440,现在终于考完试了,我再次找出了我的JZ2440.我之前学习的时候使用的是韦东山老师提供的开发工具, ...

  8. Crosstool-ng制作交叉编译工具链

    Crosstool-ng制作交叉编译工具链 交叉编译器可以用现成的,比如CodeSourcery制作的交叉编译器,也可以自己制作,一般是用kernel+gcc+glibc+binutils的源码包来编 ...

  9. Ubuntu16.04下的2009q3交叉编译工具链的搭建

    环境搭建:    1.下载arm-2009q3.tar.bz2源码.  百度云链接  密码: rbui    2.将arm-2009q3.tar.bz2拷贝到/usr/local/arm(没有该目录就 ...

随机推荐

  1. Spring--入门第二天

    一.通过工厂方法配置bean Spring 中有两种类型的 Bean, 一种是普通Bean, 另一种是工厂Bean, 即FactoryBean. 工厂 Bean 跟普通Bean不同, 其返回的对象不是 ...

  2. 不用EL表达式---实现product页面显示

    产品页面显示 静态页面如下: <%@ page language="java" contentType="text/html; charset=UTF-8" ...

  3. What’s the Difference Between a Value Provider and Model Binder?

    ASP.NET MVC 3 introduced the ability to bind an incoming JSON request to an action method parameter, ...

  4. MySQL性能调优与架构设计——第6章 MySQL Server 性能的相关因素

    第6章 MySQL Server 性能的相关因素 前言 大部分人都一致认为一个数据库应用系统(这里的数据库应用系统概指所有使用数据库的系统)的性能瓶颈最容易出现在数据的操作方面,而数据库应用系统的大部 ...

  5. Android Hander、Looper、Message三者之间的联系

    1.首先Looper.prepare()在本线程中保存一个Looper实例,然后该实例中保存一个MessageQueue对象:因为Looper.prepare()在一个线程中只能调用一次,所以Mess ...

  6. 模板方法(Template Method)模式

    /* * 抽象模版(AbstractClass)角色有如下的责任: 定义了一个或多个抽象操作,以便让子类实现.这些抽象操作叫做基本操作,它们是一个顶级逻辑的组成步骤. 定义并实现了一个模版方法.这个模 ...

  7. 20145218PC平台逆向破解

    20145218PC平台逆向破解 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同 ...

  8. Head First HTML与CSS、XHTML (中文版).(Elisabeth Freeman) PDF扫描版​

    面对那些晦涩的html书你不禁要问:“难道要成为专家之后才能读懂这些?”那么,你应该选择<head first html与css.xhtml(中文版)>真正来学习html.这本书对你来说, ...

  9. Java集合类总结 (四)

    PriorityQueue类 优先队列不管你按照什么顺序插入元素,出队列的时候元素都是按顺序输出的.也就是每次调用remove的时候,都返回当前队列中最小的元素.然后队列中的元素不是维持排序状态的,如 ...

  10. Go语言最佳实践——面向对象

    对于接口,应使用组合而非继承的方式扩展: 对于结构体,应定义独立的结构体,而非用嵌套模拟继承. 值接收者和指针接收者: 1.对于不可变类型创建只接受值接收者的方法,而为可变的类型创建接受指针接收者的方 ...