有些程序已经使用了-O2标志,如果我使用-O3标志,程序将使用-O2和-O3进行编译,如任务管理器或/proc/PID/cmdline所示。
例如,我使用的是用Clang和full LTO构建的Linux内核。即使在dkms配置中有这些行:
# /etc/dkms/framework.conf
export LLVM=1
export CC=clang
export CFLAGS="-O3 -march=native"现在,DKMS模块使用-O2和-O3标志进行编译。在这种情况下,实际使用的是哪个标志?
发布于 2021-09-24 06:00:07
gcc,见https://gcc.gnu.org/onlinedocs/gcc-11.2.0/gcc/Optimize-Options.html#Optimize-Options
如果您使用多个
-O选项,不管是否有级别编号,最后一个这样的选项就是有效的选项。
clang没有广泛地记录它的选项语法,但是它通常尝试与gcc兼容,所以在这方面应该是一样的。
https://stackoverflow.com/questions/69310163
复制相似问题