交叉编译器详解

1.什么是交叉编译器

嵌入式开发一般都是在x86平台下开发,而编译出来的软件要在arm平台上跑,所以需要交叉编译器,交叉的意思就是在一个架构上编译出另一个架构的代码。arm平台一般资源有限,不适合做开发

交叉编译器安装方式

以Linaro gcc为例子:
1.sudo apt-get install gcc-arm-linux-gnueabihf
2.官网下载:https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/
在这里插入图片描述
在这里插入图片描述

命名规则

在这里插入图片描述在这里插入图片描述
以arm-linux-gnueabihf-gcc为例说明各字段含义
1.arm表示目标芯片架构,若为大端模式则armeb或者armbe
2.linux表示运行环境为linux系统,程序可以使用linux下的c标准库或者linux内核提供的API。armeabi-gcc 或 arm-none-eabi-gcc 表示它们的目标程序运行在无操作系统的环境中。实际开发基本都是使用arm-linux-gnueabihf-gcc,包括裸机和uboot,内核代码本身,如果没有用到linux相关的不会出错,但是这样不够严谨,所以最好使用arm-none-eabi-gcc
3.表示c标准库类型为gnu的glibc库
4.eabi表示嵌入式架构
5.hf:硬浮点模式 ,没有hf的表示软浮点模式
6.编译器版本号,一般都是向下兼容,但是某些程序需要特定版本的编译器

编译器类型对程序的影响

编译器 和库要配套,如果使用软浮点编译,提供库文件又是硬浮点模式的就会出错

发布了24 篇原创文章 · 获赞 1 · 访问量 1772

猜你喜欢

转载自blog.csdn.net/qq_27182175/article/details/103006302
今日推荐