在 Linux 下进行 C 程序开发, 我们使用的 gcc 编译器进行代码的编译, 编译完,直接在 X86 架构下的 PC 下运行的。 而 arm 架构的, 所以我们需要使用支持 arm 的编译器并且该编译器在 X86 架构下运行, 这个编译器我们通常称为交叉编译器。
-
總之,交叉編譯器就是:
- 是一個 gcc 編譯器
- 這個 gcc 編譯器在 X86 架構 PC 上運行的
- 這個 gcc 編譯器是編譯 ARM 架構代碼的,也就是編譯出來的代碼是在 ARM 架構的芯片上運行的
- 交叉之意就是在一個架構上去編譯另一個架構的代碼,相當於這兩個架構交叉起來了。
-
安裝
PS : 在進行以下操作之前須知:交叉式編譯器安裝包
下载地址为:http://releases.linaro.org/,注意区分32位与64位,由于我们是64位系统,所以这里我们下载64位的:
64位下载地址:http://releases.linaro.org/components/toolchain/binaries/6.1-2016.08/arm-linux-gnueabi/gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnueabi.tar.xz
32位下载地址:http://releases.linaro.org/components/toolchain/binaries/6.1-2016.08/arm-linux-gnueabi/gcc-linaro-6.1.1-2016.08-i686_arm-linux-gnueabi.tar.xz
(gcc-linaro-6.1.1-2016.08-i686_arm-linux-gnueabi.tar.xz)
1. 下载完成后找到相应目录,解压
./arm$ sudo tar -vxf gcc-linaro-6.1.1-2016.08-i686_arm-linux-gnueabi.tar.xz
2.查看
./arm$ ls
gcc-linaro-6.1.1-2016.08-i686_arm-linux-gnueabi
gcc-linaro-6.1.1-2016.08-i686_arm-linux-gnueabi.tar.xz
3. 添加环境
$ sudo vi /etc/profile
在打開的文件最後添加上 :
export PATH=$PATH:/usr/local/arm/gcc-linaro-6.1.1-2016.08-i686_arm-linux-gnueabi/bin
4.重啓 Ubuntu
$sudo reboot
5. 檢查安裝是否成功 ,由以下类似信息即为成功。
~$ arm-linux-gnueabi-gcc -v
...
Thread model: posix
gcc version 6.1.1 20160711 (Linaro GCC 6.1-2016.08)
6. 以下操作无关紧要
~$ sudo apt-get install libc6:i386
PS : 32 位 安裝 lib32stdc++6 而 64 位:sudo apt-get install lib32stdc++6
7. ~/SD$ vi test.c
PS : 寫入:
# include <stdio.h>
int main()
{
printf("hello world!\n");
return 0;
}
8. ~/SD$ arm-linux-gnueabi-gcc test.c -o test
PS : 使用交叉編譯器編譯 test.c
9. ~/SD$ ls
sd sd.c test test.c