使用Clang编译时LLVM中-Wl选项的含义是什么?
关于
-Wl 选项的说明 - 核心作用:
-Wl是GCC、Clang等编译器前端的选项,作用就是把紧随其后的参数直接传递给链接器,相当于在编译器和链接器之间搭起参数传递的桥梁。 - 用法细节:
- 单个链接器选项:用逗号分隔
-Wl和目标链接器选项,比如clang main.c -Wl,-O1就是告诉链接器开启优化等级1。 - 多个链接器选项:传递多个参数时同样用逗号分隔,比如
clang main.c -Wl,-rpath,/usr/local/lib,这里-rpath和/usr/local/lib都会被传递给链接器。
- 单个链接器选项:用逗号分隔
- LLVM文档找不到的原因:这个选项并非LLVM核心组件的特性,而是Clang为兼容GCC使用习惯继承来的,相关说明在Clang或GCC的文档中,而非LLVM主文档。
举个实际场景示例:如果要让链接器生成位置无关的可执行文件,可执行如下命令:
clang my_program.c -Wl,-pie -o my_program
内容的提问来源于stack exchange,提问作者Danny
相关产品推荐
相关产品推荐

