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

时间:2016-01-07 05:13:39

标签: linux gcc gcc4.7

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

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

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

我正在使用gcc版本4.9.1。

2 个答案:

答案 0 :(得分:1)

因为它只是使用了最后的 1 选项。

1。在手册页中:如果使用多个-O选项,无论是否有级别编号,最后一个选项都是有效的选项。

答案 1 :(得分:1)

来自GCC man page

  

如果您使用多个-O选项,无论是否有关卡编号,最后一个选项都是有效选项。

您无法在命令行上合并-O2-Os

但这是-Os的描述:

  

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

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