【问题标题】:DCRaw says I should compile with -O4 in gcc. Does -O4 exist?DCRaw 说我应该在 gcc 中使用 -O4 进行编译。 -O4 存在吗?
【发布时间】:2015-09-24 12:08:54
【问题描述】:

我正在研究从源头构建 DCRaw。在其网页上,它建议我使用以下行之一进行构建。

Compile with "gcc -o dcraw -O4 dcraw.c -lm -ljasper -ljpeg -llcms2" or "gcc -o dcraw -O4 dcraw.c -lm -DNODEPS".

我从未听说过 gcc 中的 -O4。这和 -O3 有什么不同?

https://www.cybercom.net/~dcoffin/dcraw/

【问题讨论】:

  • 谷歌关闭了吗?没有找到 gcc 主页?

标签: c gcc optimization


【解决方案1】:

gcc 的最大优化级别是-O3。使用-O4(或-O5-O6,...,-O9)实际上恢复为-O3。无法保证这些选项会受到支持或将来会有不同的行为,因此请使用 -O3 以实现可移植性。

 gcc -c -Q -O3 --help=optimizers > /tmp/O3-opts
 gcc -c -Q -O4 --help=optimizers > /tmp/O4-opts
 diff -u /tmp/O3-opts /tmp/O4-opts

【讨论】:

  • 只在gcc中...我以后要使用-O666
  • -O666是触发著名的t鼻恶魔的好选择。
【解决方案2】:

目前-O3 是实际添加标志的最高编号选项。 gcc 的编号优化级别是累积的。也就是说,-O3 包括所有 -O2 标志,-O2 包括所有 -O1 标志。这为未来的-O4 敞开了大门,它将包括所有-O3 以及更多。

实际的标志在documentation 中,但我认为您可以从code itself 中获得更好的了解。

【讨论】:

    猜你喜欢
    • 2012-12-05
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 2010-11-04
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多