arm gcc编译选项

这篇具有很好参考价值的文章主要介绍了arm gcc编译选项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、arm-none-eabi-gcc

arm:架构是arm
none:不是特定的供应商提供的
eabi:eabi:嵌入式应用二进制接口(Embedded Application Binary Interface)
因为名称里没有“linux”类似的字样,说明不支持操作系统。

二、libc.a

libc 是ANSI C 语言函数库,包含了 C 语言最基本的库函数。这个库可以根据头文件划分为 15 个部分,其中包括:
<ctype.h>:包含用来测试某个特征字符的函数的函数原型,以及用来转换大小写字母的函数原型;
<errno.h>:定义用来报告错误条件的宏;
<float.h>:包含系统的浮点数大小限制;
<math.h>:包含数学库函数的函数原型;
<stddef.h>:包含执行某些计算 C 所用的常见的函数定义;
<stdio.h>:包含标准输入输出库函数的函数原型,以及他们所用的信息;
<stdlib.h>:包含数字转换到文本,以及文本转换到数字的函数原型,还有内存分配、随机数字以及其他实用函数的函数原型;
<string.h>:包含字符串处理函数的函数原型;
<time.h>:包含时间和日期操作的函数原型和类型;
<stdarg.h>:包含函数原型和宏,用于处理未知数值和类型的函数的参数列表;
<signal.h>:包含函数原型和宏,用于处理程序执行期间可能出现的各种条件;
<setjmp.h>:包含可以绕过一般函数调用并返回序列的函数的原型,即非局部跳转;
<locale.h>:包含函数原型和其他信息,使程序可以针对所运行的地区进行修改。
地区的表示方法可以使计算机系统处理不同的数据表达约定,如全世界的日期、时间、美元数和大数字;
<assert.h>:包含宏和信息,用于进行诊断,帮助程序调试。

链接选项:-lc

三、libm.a

函数库‘libm.a’包含所有数学函数的目标文件,比如sin,cos,exp,log及sqrt。

链接选项:-lm

四、-specs=nano.specs

nona.specs 将 -lc 替换成 -lc_nano,即:使有精简版的C库替代标准C库。精简的C库有些特性是被排除掉的,比如 printf* 系列函数不支持浮点数的格式化,因为做了精简,因此最终生成的程序映像要比使用标准C库要小一些。如果没有用到这部分特性,就可以通过 -specs=nano.specs 节约有限的代码空间,如果使用了该参数后发现有些C库函数行为不符合预期,比如 sprintf 没有格式化浮点数,那么将这个参数去掉。

链接选项:–specs=nano.specs

五、-specs=nosys.specs

程序中不能调用系统函数,比如exit(), abort()等,否则会报错。

链接选项:–specs=nosys.specs文章来源地址https://www.toymoban.com/news/detail-770897.html

到了这里,关于arm gcc编译选项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【gcc, cmake, eigen, opencv,ubuntu】二.gcc编译选项

    1.-march=native 其中-march选项就是就是指定目标架构的名字,gcc就会生成针对目标架构优化的目标代码,如-march=prescott会生成针对i5或i7的目标码,从而充分发挥cpu的性能。自gcc4.2,引入了-march=native,从而允许编译器自动探测目标架构并生成针对目标架构优化的目标代码,这比手

    2024年02月09日
    浏览(45)
  • ARM架构Linux操作系统上C语言版本的CycloneDDS中HelloWorld的编译过程(交叉编译工具链)

    ARM架构Linux操作系统上C语言版本的 CycloneDDS 中 HelloWorld 的编译过程与源码编译过程中的 roundtrip 示例编译是一样的,因为实在ARM架构上,所以需要将 idlc_generat e注释掉,自己手动添加源代码和头文件,之后在进行 cmake 和 make 操作

    2024年02月15日
    浏览(43)
  • 【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件

    参考资料: 《野火 Linux 基础与应用开发实战指南基于 i.MX6ULL 系列》PDF 第24章 参考视频: https://www.bilibili.com/video/BV1JK4y1t7io?p=26vd_source=fb8dcae0aee3f1aab700c21099045395 注意,一定要记得把虚拟机的网络适配器设置为桥装模式,需要下载东西的时候改回NAT模式 虚拟机的版本太高了:一

    2024年01月19日
    浏览(39)
  • ARM嵌入式编译器编译优化选项 -O

    Arm嵌入式编译器可以执行一些优化来减少代码量并提高应用程序的性能。不同的优化级别有不同的优化目标,不仅如此,针对某个目标进行优化会对其他目标产生影响。比如想减小生成的代码量,势必会影响到该代码的性能。所以优化级别总是这些不同目标(代码量,程序性

    2024年02月16日
    浏览(65)
  • 【ARM 嵌入式 编译系列 2.1 -- GCC 编译参数学习】

    请阅读 【ARM GCC 编译专栏导读】 上篇文章:ARM 嵌入式 编译系列 2 – GCC 编译过程介绍 下篇文章:ARM 嵌入式 C 入门及渐进 3 – GCC attribute ((weak)) 弱符号使用 上篇文章 ARM 嵌入式 编译系列 2 – GCC 编译过程介绍 已经介绍过了具体的编译流程,本篇文章主要介绍变过程中常见的

    2024年02月13日
    浏览(44)
  • gcc编译 与交叉编译(x86 to arm) (一)单个文件编译

    源平台: UOS_X86_64 目标平台:UOS_arm 方法:使用现成的交叉编译工具链 参考资料:交叉编译概念 ; 安装交叉编译器 ; 交叉编译入门 ( 步骤1 )去平台下载对应的工具链 https://www.linaro.org/downloads/ https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads 以上两个均可以下载,我下载

    2024年02月06日
    浏览(51)
  • ARM交叉编译工具链 gcc-arm-none-eabi

    1,交叉编译工具链简介 (1)命令规则 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch – 体系架构ÿ

    2024年03月25日
    浏览(59)
  • Ubuntu上搭建ARM Linux GCC交叉编译环境

    在Ubuntu操作系统上搭建ARM Linux GCC交叉编译环境是为了能够在x86架构的主机上编译运行适用于ARM架构的程序。本文将介绍详细的步骤以及相应的源代码。 安装必要的软件包 首先,我们需要安装一些必要的软件包,包括GCC、GNU Binutils和GDB。打开终端,运行以下命令来安装这些软

    2024年02月02日
    浏览(54)
  • 【ARM 嵌入式 编译系列 3.5 -- gcc 链接参数介绍】

    请阅读 【嵌入式开发学习必备专栏 之 ARM GCC 编译专栏】 上篇文章【ARM 嵌入式 编译系列 3.4 – 查看所依赖库文件的路径 详细介绍】一直在提 链接参数 ,那么链接参数有哪些,它们又有什么作用呢? 如前一篇文章中的的链接参数到底是什么意思呢? -L : 指定了 链接库的路径

    2024年01月17日
    浏览(47)
  • arm-linux-gnueabihf-g++ gcc编译、优化命令 汇总

    gcc优化选项,可在 编译时间,目标文件长度,执行效率 三个维度,进行不同的取舍和平衡。 -c 只编译并生成目标文件。 -E 只运行 C 预编译器。 -g 生成调试信息。GNU 调试器可利用该信息。 -Os 相对语-O2.5。 -o FILE 生成指定的输出文件。用在生成可执行文件时。 -O0 不进行优化

    2024年02月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包