打印
[STM32F1]

为什么STM32CubeIDE链接器文件会丢弃libc.a libg.a和libgcc.a?

[复制链接]
131|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
封存into|  楼主 | 2025-6-19 23:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么STM32CubeIDE链接器文件会丢弃libc.a libg.a和libgcc.a?
在链接器的末尾,会发现:
  /* Remove information from the compiler libraries */  /DISCARD/ :  {    libc.a ( * )    libm.a ( * )    libgcc.a ( * )  }
也许我没有弄对,但是,libc.a不应该包括所有的C标准库代码,所以需要编译一个C应用程序?

使用特权

评论回复
沙发
classroom| | 2025-6-20 16:44 | 只看该作者
减小最终生成的可执行文件的大小,因为嵌入式系统通常对存储空间有严格的限制。

使用特权

评论回复
板凳
flycamelaaa| | 2025-6-20 18:45 | 只看该作者
嵌入式系统的存储空间通常非常有限。因此,在链接阶段,需要尽可能地减小最终生成的可执行文件的大小,以确保其能够适应目标设备的存储空间。丢弃未使用的库函数是实现这一目标的有效手段之一。

使用特权

评论回复
地板
powerantone| | 2025-6-20 19:46 | 只看该作者
为了避免不必要的依赖。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

66

帖子

0

粉丝