Clang是否默认应用编译选项?如何查看默认选项全列表?
Clang默认编译选项说明
Clang执行clang hello_world.c这类简单编译命令时,确实会默认添加一系列选项,具体如下:
- 优化标志:默认启用
-O0,即无优化模式,优先保证编译产物的可调试性。 - 头文件搜索路径:自动包含系统标准头文件目录(如
/usr/include)以及编译器自带的头文件路径。 - 链接库:默认链接标准C库(如
libc),若编译C代码则会自动链接标准C库。 - 漏洞缓解标志:像
-mlvi-cfi这类特定架构的漏洞缓解选项不会默认启用,这类选项需手动指定,因为它们依赖特定硬件支持且可能带来性能损耗。
获取完整默认选项列表的方法
- 使用
-v参数查看编译全过程:
执行命令:clang hello_world.c -v,输出内容里会显示Clang实际执行的完整命令行,包含所有默认添加的选项。 - 使用
-###参数输出后端调用命令:
执行命令:clang hello_world.c -###,该参数会直接打印Clang调用汇编器、链接器等工具时的完整命令,所有默认选项都会明确列出,且不会实际完成编译。
内容的提问来源于stack exchange,提问作者Jeff
相关产品推荐
相关产品推荐

