我正在考虑从源代码构建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有什么不同?
发布于 2015-09-24 20:22:47
使用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发布于 2015-09-24 20:34:54
目前,-O3是实际添加标志的编号最高的选项。gcc的数值优化级别是累积的。也就是说,-O3包括所有的-O2标志,-O2包括所有的-O1标志。这为未来的-O4敞开了大门,它将包括所有-O3以及更多内容。
实际的标志在documentation中,但我认为您可以从code itself中获得更好的洞察力。
https://stackoverflow.com/questions/32760945
复制相似问题