Linaro下载与安装,交叉编译环境搭建——Linux驱动开发
交叉编译是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。在PC上运行的操作系统一般都是x86架构的,比如Windows、虚拟机中的Linux,他们的编译工具链为gcc、ld、objcopy、objdump等,他们编译出的程序也只能在 x86 架构上运行;
一、交叉编译简介
交叉编译是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。在PC上运行的操作系统一般都是x86架构的,比如Windows、虚拟机中的Linux,他们的编译工具链为gcc、ld、objcopy、objdump等,他们编译出的程序也只能在 x86 架构上运行;我们一般不会在 arm 平台下编译程序,而是会在 PC 上编译,所以要编译出能在 arm 平台上运行的程序,则须使用交叉编译工具 arm-linux-gcc、arm-linux-ld、arm-linux-objcopy、arm-linux-objdump等。
二、下载
Linaro官网:https://www.linaro.org/
这是一些交叉编译链的区别,选择自己芯片对应的即可[转载]
- arm-none-linux-gnueabi-gcc:是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM(32位)系统中所有环节的代码,包括裸机程序、u-boot、Linux kernel、filesystem和App应用程序。
- arm-linux-gnueabihf-gcc:是由 Linaro 公司基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM(32位)系统中所有环节的代码,包括裸机程序、u-boot、Linux kernel、filesystem和App应用程序。
- aarch64-linux-gnu-gcc:是由 Linaro 公司基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARMv8 64位目标中的裸机程序、u-boot、Linux kernel、filesystem和App应用程序。
- arm-none-elf-gcc:是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM MCU(32位)芯片,如ARM7、ARM9、Cortex-M/R芯片程序。
- arm-none-eabi-gcc:是 GNU 推出的的ARM交叉编译工具。可用于交叉编译ARM MCU(32位)芯片,如ARM7、ARM9、Cortex-M/R芯片程序。
三、安装
下载后传到虚拟机上,我放在了 /usr/local 目录下,解压
sudo tar -xvf gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz
解压后的 bin 目录
然后修改环境变量
sudo vi /etc/profile
文件末尾加上:
export PATH=$PATH:/usr/local/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin
重启一下虚拟机,查看版本号
arm-linux-gnueabihf-gcc -v
安装成功!
更多推荐
所有评论(0)