kernel在make menuconfig时会发现,只有 Os O2这两种选项。
如果强行修改Makefile,有些源码会报错。原因网上能搜到一些说法,这里不研究。
为了研究源码,我用了这个方法实现O0编译:
在源文件开头,写这句:(可以强制指定 本文件内以下源码全部O0编译):
#pragma GCC optimize ("O0")
也可以给单个函数:
__attribute__((optimize("O0")))
编译时日志还是会打印 -O2,但是实际上已经O0编译,调试就看出来了。