archlinux安装交叉编译工具链

1. 在/usr/local下新建文件夹:arm
  [[email protected] local]$sudo mkdir arm

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

[[email protected] arm]$ ls
  arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

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

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

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

6. 验证交叉编译器是否安装正确
  输入[[email protected] ~]$ 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位程序。
  [[email protected] ~]$ 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

[[email protected] ~]$ sudo nano /etc/pacman.conf
  [sudo] password for guo:
  [[email protected] ~]$

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

如果不管用,用命令按照32位运行库
  [[email protected] ~]$ sudo pacman -S lib32-glibc

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

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

return 0;
  }

[[email protected] ~]$ cd /tmp
  [[email protected] tmp]$ nano hello.c
  [[email protected] tmp]$ cat hello.c
  #include <stdio.h>

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

return 0;
  }
  [[email protected] tmp]$

通过以下命令进行编译,编译后生成名为hello的可执行文件,通过file命令可以查看文件的类型。
  当显示以下信息时表明交叉工具链正常安装了,通过编译生成了ARM体系可执行的文件。
  注意,通过该交叉编译链编译的可执行文件只能在ARM体系下执行,不能在基于X86的普通PC上执行。
  [[email protected] tmp]$ arm-none-linux-gnueabi-gcc hello.c -o hello
  [[email protected] tmp]$ ls
  fcitx-socket-:0  hello.c                sogou-qimpanel-cellguo
  hello            serverauth.xlA5PX22fa  sogou-qimpanel:0.pid
  [[email protected] 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

时间: 2024-11-14 17:37:07

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

嵌入式开发环境搭建之安装交叉编译工具链

如果开发环境是Linux,那么交叉编译工具链是必须的,具体安装过程如下:(以我现在用的为例)准备好制作好的交叉编译工具链arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 cd work/toolchaintar xjf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 解压好后需要设置环境变量为了方面,不要每次使用时都要手动设置,可以在/etc/environment中修改PATH的值,如下: PATH="/usr/local/sbin

安装交叉编译工具链

自己动手安装交叉工具链: 1.Windows中装软件的特点 Windows中装软件使用安装包,安装包解压后有2种情况:一种是一个安装文件(.exe..msi),双击进行安装,下一步直到安装完毕.安装完毕后会在桌面上生成快捷方式,我们平时使用快捷方式来启动这些程序:另一种是所谓的绿色软件.免安装包,这种不用安装,直接解压开里面就.exe可以直接双击执行. 2.Linux中装软件的特点

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

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

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应用程序.使

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

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

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

ubuntu下编译交叉编译工具链

交叉编译工具链在arm开发中出很重要的位置,开发之前肯定要先有编译器 连接器 汇编器等基础的编译工具.arm体系是一个很复杂的体系,里面的指令有数个版本不同的体系level还有很多自己的特点 ,这就要求编译器也要出几个版本的针对不同的应用. 当然网络上存在很多的编译器的资源,但是作为一个嵌入式开发人员还是要会自己构建出来一个工具链的,做到只能说不想做,不能说做不到,不然真的遇到特殊应用的需要无法作出编译器项目就直接挂了. 整个工具链的编译过程如果采用纯手工的step by step  真的需要几