我正在寻找从源头构建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有什么不同?
答案 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获得更好的信息。