摘要:-f
和-m
编译器选项中的gcc
和clang
代表什么?
详情:
使用clang
时,我注意到许多编译器选项都以-f
开头,其他编译器选项以-m
开头。我认为这有一些历史原因,我很好奇所以我看了gcc
帮助并看到了以下内容:
以-g,-f,-m,-O,-W或--param开头的选项是自动的 传递给gcc调用的各个子进程。为了 将其他选项传递给-W选项必须的这些进程 使用。
如果我不得不猜测我认为-f
可能代表前端而-m
代表机器。但我有兴趣听到一个更全面的答案,可能包括gcc调用的其他子流程。
答案 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(例如...当模式 ...)
时