正如您在第一个示例中提到的那样,通常情况下,行上的更高选项会覆盖先前传递的选项。我个人没有遇到过任何不同的行为
-m或
-f标志,但是我不知道文档中的特定参考。
请注意,某些选项的行为不这样:
$ gcc example.c -DABC -DABC=12<command-line>: warning: "ABC" redefined<command-line>: warning: this is the location of the previous definition
因此,
-UABC在两者之间必须存在一个中间位置以关闭该警告。
clang顺便说一句,它特别擅长解决此问题-如果忽略命令行选项,它将发出警告,这可以为您提供帮助。



