Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用gcc优化Sparc的C代码以获得较小的图像大小_Gcc_Optimization_Embedded_Compiler Optimization_Sparc - Fatal编程技术网

使用gcc优化Sparc的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”))来优化特定函数的速度 有关优化标

我有一些C代码,我正试图为基于Sparc V8的系统编译,该系统具有高度受限的资源。我正在使用gcc,我想问以下问题

1) 除了关闭调试(-g标志)还有什么其他选项可以减少编译对象的大小

2) ARM有拇指模式,Sparc有类似的吗

3) 可以使用哪些其他编译器选项(甚至C代码技巧)来减小已编译的二进制对象的大小


我再次使用gcc。

使用-Os编译。这意味着优化尺寸。 如果代码的某些部分应该尽可能快地运行,您可以使用
\uuuuu属性(optimize(“-O2”))
来优化特定函数的速度

有关优化标志的说明,请参见以下链接:

1)如Mat所述:使用-Os标志减少代码大小

2) 不需要。请看下面的手册:

3) 阅读本文:
这是一位经验丰富的工程师为Contiki OS项目编写的代码大小缩减建议。Contiki OS是一个嵌入式C项目,通常使用GCC编译,因此它适用于您的问题。

我不建议使用
\uuuuuu属性(优化(…))
,文档将其描述为“此属性仅用于调试目的。它不适用于生产代码”。此外,内联有时可以减少代码大小,而且
-Os
已经告诉编译器当它会增加大小时不要内联。谢谢@Felipe lavrati