唯客微博客

专注于计算机,嵌入式领域的技术

0%

ARM GCC生成固件的压缩、减少和优化大小的几个编译链接参数

ARM GCC生成固件的压缩、减少和优化大小的几个编译链接参数

1、C++ 编译参数 -ffunction-sections -fdata-sections 和链接参数 --gc-sections

使用-ffunction-sections, -fdata-sections会使compiler为每个function和data item分配独立的section。

使用 --gc-sections会使ld删除没有被使用的section。

就可以压缩固件大小的目的了

2、C++ 编译参数 -fno-rtti -fno-exceptions.

-fno-rtti Don't generate runtime type idertification (RTTI)

不使用RTTI

-fno-exceptions Don't catch exceptions

不捕获程序异常

3、C++ 编译参数 -Os

Optimize gennerated code(for size) [-Os]

优化代码大小,除了-Os外 还有 -O0 -O1 -O2 -O3 -Ofast.。

4、链接参数---specs=nano.specs

使用静态库 libc_nano.a libstdc++_nano.a libsupc++_nano.a替换默认的静态库 libc.a libstdc++.a libsupc++.a这样就可以大大减小固件了。

5、另外还有 -g -g1 -g2 -g3 ,这些都是调试信息,也会影响生成固件的大小。

-------------本文结束感谢您的阅读-------------

本文标题:ARM GCC生成固件的压缩、减少和优化大小的几个编译链接参数

文章作者:Vinx

发布时间:2023年11月21日 - 11:02

最后更新:2023年12月21日 - 09:29

原始链接:https://blog.vinkvin.com/post/97/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。