使用gcc优化Sparc的C代码以获得较小的图像大小
我有一些C代码,我正试图为基于Sparc V8的系统编译,该系统具有高度受限的资源。我正在使用gcc,我想问以下问题 1) 除了关闭调试(-g标志)还有什么其他选项可以减少编译对象的大小 2) ARM有拇指模式,Sparc有类似的吗 3) 可以使用哪些其他编译器选项(甚至C代码技巧)来减小已编译的二进制对象的大小使用gcc优化Sparc的C代码以获得较小的图像大小,gcc,optimization,embedded,compiler-optimization,sparc,Gcc,Optimization,Embedded,Compiler Optimization,Sparc,我有一些C代码,我正试图为基于Sparc V8的系统编译,该系统具有高度受限的资源。我正在使用gcc,我想问以下问题 1) 除了关闭调试(-g标志)还有什么其他选项可以减少编译对象的大小 2) ARM有拇指模式,Sparc有类似的吗 3) 可以使用哪些其他编译器选项(甚至C代码技巧)来减小已编译的二进制对象的大小 我再次使用gcc。使用-Os编译。这意味着优化尺寸。 如果代码的某些部分应该尽可能快地运行,您可以使用\uuuuu属性(optimize(“-O2”))来优化特定函数的速度 有关优化标
我再次使用gcc。使用-Os编译。这意味着优化尺寸。 如果代码的某些部分应该尽可能快地运行,您可以使用
\uuuuu属性(optimize(“-O2”))
来优化特定函数的速度
有关优化标志的说明,请参见以下链接:1)如Mat所述:使用-Os标志减少代码大小
2) 不需要。请看下面的手册:
3) 阅读本文:
这是一位经验丰富的工程师为Contiki OS项目编写的代码大小缩减建议。Contiki OS是一个嵌入式C项目,通常使用GCC编译,因此它适用于您的问题。我不建议使用
\uuuuuu属性(优化(…))
,文档将其描述为“此属性仅用于调试目的。它不适用于生产代码”。此外,内联有时可以减少代码大小,而且-Os
已经告诉编译器当它会增加大小时不要内联。谢谢@Felipe lavrati