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
相关文章
- 安装交叉编译工具,执行arm-linux-gcc –v命令出现提示找不到该文件或目录?解决方法
- Yocto工具链编译Busybox
- 使用buildroot建立交叉编译工具
- Eclipse中安装反编译工具Fernflower(Enhanced Class Decompiler)
- 常用交叉编译工具整理(arm-linux-gcc)
- PC机安装Qt以及QT交叉编译环境 分类: OpenCV ZedBoard shell ubuntu Eye_Detection 2014-11-08 18:57 246人阅读 评论(0) 收藏
- 在Windows下安装编译GDB调试工具
- CentOS安装交叉编译环境中遇到的错误和解决办法
- 搭建arm-linux-gcc交叉编译工具链环境(Android原生(JNI)开发环境搭建)
- arm-linux-gcc交叉编译器安装