gcc / clang编译器选项中-f和-m代表什么?

时间:2013-04-26 01:48:42

标签: gcc

摘要-f-m编译器选项中的gccclang代表什么?

详情

使用clang时,我注意到许多编译器选项都以-f开头,其他编译器选项以-m开头。我认为这有一些历史原因,我很好奇所以我看了gcc帮助并看到了以下内容:

  

以-g,-f,-m,-O,-W或--param开头的选项是自动的   传递给gcc调用的各个子进程。为了   将其他选项传递给-W选项必须的这些进程   使用。

如果我不得不猜测我认为-f可能代表前端而-m代表机器。但我有兴趣听到一个更全面的答案,可能包括gcc调用的其他子流程。

1 个答案:

答案 0 :(得分:4)

我没有明确说明'f''m'的具体来源,但我们可以根据文档中的使用模式进行推断。

'f'代表'flag'。

如果通过'-fFLAG'指定标志,则通过'-fnoFLAG'关闭标志

例如:

  -fpic         # flag to set position independent code 
  -fno-builtin  # don't recognize build in functions ... 

技术定义是'f'定义“控制代码生成中使用的接口约定”。

的Src: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html  (例如-fpci,设置此标志时)


'm'代表模式。一个一般特征是它有时候有参数。 e.g

 -mabi=name   #abi mode = name
 -mcpu=cpu

的Src: https://gcc.gnu.org/onlinedocs/gccint/Standard-Names.html(例如...当模式 ...)