GCC 中是否有任何宏包含用于编译程序的编译标志?
我想要这样的东西:
printf("Compilation flags: %s", __FLAGS__);
例如,要输出:
Compilation flags: -02 -g
简短回答:不。
稍长的答案:即使有,你的代码也会变得不可移植。需要这种功能的项目可以让构建系统来做到这一点,例如,将所有标志放在make
的CFLAGS
变量中,并让规则创建一个config.h
将所有这些标志放在一个#define
中。
这可能没有多大帮助,但 GCC 有选项 -fverbose-asm
(https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html(,它将转储生成的程序集中使用的命令行选项作为注释。
当然,这仅在您打算读取生成的程序集而不是直接组装它时才有用。