首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >-specs参数在arm-none-eabi-gcc中有什么作用?

-specs参数在arm-none-eabi-gcc中有什么作用?
EN

Stack Overflow用户
提问于 2021-06-12 00:01:09
回答 1查看 158关注 0票数 0

我在使用嵌入式arm gcc编译器的链接器时遇到了问题,我在网上的某个地方找到了一个教程,上面说我可以通过包含参数-specs=nosys.specs来修复arm-none-eabi-gcc中的链接器错误,这对我很有效,并且它能够编译我的代码。

我的芯片是一个ATSAM7SE256微控制器,据我所知,它是一个使用armv4tthumb指令集的arm7tdmi处理器,我一直在使用以下命令编译我的代码:

代码语言:javascript
复制
arm-none-eabi-gcc -march=armv4t -mtune=arm7tdmi -specs=nosys.specs -o <exe_name>.elf <input_files>

代码编译时没有任何问题,但我不知道它是否在做我认为它正在做的事情。

等级库文件的意义是什么?您还可以使用-specs=设置哪些其他值,以及在哪些情况下您希望这样做?nosys.specs是我想要的完全嵌入式ARM微控制器的值吗?

EN

回答 1

Stack Overflow用户

发布于 2021-06-12 01:42:34

文档记录在:https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Overall-Options.html#Overall-Options

它是一个包含开关的文件,用于覆盖编译器、汇编器和链接器等各种构建组件的标准默认值。例如,它可以用来替换默认的C库。

我从未见过它被使用;通常,裸机嵌入式系统构建显式地指定--nostdlib,然后显式地链接所需的库。它可以用于特定于环境的构建环境,以链接其他默认代码,例如RTOS。就我个人而言,我更愿意在命令行中显式地将其隐藏在某个文件中。

本质上,它应用文件中指定的开关,就好像它们是默认值一样,因此可以用来为特定的构建和执行环境定义默认值。

specs文件的格式记录在https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Spec-Files.html#Spec-Files

在这种情况下,如果不能同时看到链接器错误和nosys.specs文件的内容,就很难说出它是如何或为什么解决链接器问题的。当然,另一种解决方案是直接应用specs文件中的任何开关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67940155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档