我有一些C代码,我试图为具有高度约束资源的基于Sparc V8的系统进行编译。我正在使用gcc,我想问下面的问题。
1)除了关闭调试(-g标志)还有什么其他选项可以减少编译对象的大小?
2)ARM有一个拇指模式,Sparc有类似的东西吗?
3)可以使用哪些其他编译器选项(甚至C代码技巧)来减少编译的二进制对象大小。
我再次使用gcc。
答案 0 :(得分:2)
使用-Os进行编译。这意味着优化尺寸。
如果代码的某些部分应该尽可能快地运行,您可以使用__attribute__((optimize("-O2")))
来优化特定函数的速度。
有关优化标记的说明,请参阅以下链接:https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
答案 1 :(得分:1)
1)正如Mat所说:使用-Os标志减少代码大小
2)否。请看这里的手册:http://www.gaisler.com/doc/sparcv8.pdf
3)阅读这篇文章:https://github.com/contiki-os/contiki/wiki/Reducing-Contiki-OS-firmware-size 这是由经验丰富的工程师编写的Contiki OS项目的代码大小减少建议。 Contiki OS是一个嵌入式C项目,通常使用GCC编译,因此它适用于您的问题。