DCRaw说我应该用gcc中的-O4编译。 -O4存在吗?

时间:2015-09-24 12:08:55

标签: c gcc optimization

我正在寻找从源头构建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/

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

实际标志位于documentation,但我认为您可以从code itself获得更好的信息。