使用GCC命令的两个或多个优化选项



我正在尝试从源代码编译一个开源组件。我正在使用gcc命令编译该组件中的所有C文件。

当我按-O2 -Os的顺序传递选项时,二进制文件只有几KB。但当我按顺序传递选项时,-Os -O2二进制大小较大。

我知道在gcc命令中包含子目录或链接库的情况下,顺序很重要。为什么顺序对gcc命令的优化参数很重要?

我使用的是gcc 4.9.1版本。

因为它只是使用它看到的最后一个1选项。


1.从手册页:如果你使用多个-O选项,无论有没有级别号,最后一个这样的选项是有效的

来自GCC手册页:

如果使用多个-O选项,无论是否使用级别编号,最后一个这样的选项都是有效的。

不能在命令行中组合-O2-Os

但以下是对-Os:的描述

优化尺寸-Os启用所有通常不会增加代码大小的-O2优化。它还执行旨在减小代码大小的进一步优化。

看起来-Os已经在做你想做的事了。

最新更新