-W (-X)

适用的调用

表 1. 接受给定选项的调用
选项 xlc (编译 C) xlC (编译 C++) xlclang(编译 C) xlclang++(编译 C++)
-W
-X    
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表

类别

编译器定制

等效编译指示

无。

用途

将一个或多个选项传递到在编译期间执行的组件。

语法

读取语法图跳过可视语法图-X assemblerpreprocessorlinker1选项
备注信息:
  • 1 必须在 选项之前至少插入一个空间。
读取语法图跳过可视语法图 -W abcCdEfILlmp ,选项

参数

option
对要传递到的组件有效的任何选项。

基于 Clang 的前端开始关于 -X ,有关链接和组装选项的详细信息,请参阅GNU Compiler Collection在线文档,网址为 http://gcc.gnu.org/onlinedocs/基于 Clang 的前端端

下表显示了 -W 参数与组件名称之间的对应关系:

-W 参数 -X 参数 描述 组件名称
a 汇编程序 The 汇编程序 as
b   The 低级优化器 xlCcode
c   The 编译器前端 xlcentry和 xlCentry
仅限 C + + C   The C++ 编译器前端 xlCentry
c 或 C   C 和 C++ 编译器前端 xlCentry
d   The 反汇编器 dis
E   CreateExportList 实用工具 CreateExportList
仅限 C + + f   The c + + filt 实用程序 c++filt
I(大写 i)   The 高级优化器,编译步骤 ipa
L   The 高级优化器,链接步骤 ipa
l(小写 L) 链接程序 The 链接程序 ld
仅限 C + + m   The 链接帮助程序 munch
p   The 预处理器 xlCentry

使用量

-W 选项后面的字符串中,使用逗号作为每个选项的分隔符,并且不包含任何空格。 基于 Clang 的前端开始对于 -X 选项,需要在选项前留一个空格。 基于 Clang 的前端端如果您需要在选项字符串中包含一个外壳特有的字符,请在该字符前添加一个反斜杠。 例如,如果在配置文件中使用 -W 选项,那么可以使用转义序列反斜杠逗号 (\ ,) 来表示参数字符串中的逗号。

您不需要 -W 选项来将大多数选项传递到链接程序 ld; 无法识别的命令行选项 ( -q 选项除外) 将自动传递到该链接程序。 只有与编译器选项具有相同字母的链接程序选项 (例如 -v -S) 严格要求 -W

默认情况下,静态对象按照以下优先级顺序进行初始化: 基于 XL 的前端开始 #pragma 优先级基于 XL 的前端开始-qpriority(仅限 C++) 选项。 您可以使用 -Wm 选项来控制具有相同优先级的对象的初始化顺序。 指定 -Wm -c 指示编译器按照在链接到库期间在命令行上给出的文件顺序来初始化具有相同优先级的对象文件,并根据这些文件中的静态对象的声明顺序来初始化这些文件。但是, -Wm -r 选项指定将以在链接阶段迂到的相反顺序来初始化具有相同优先级的对象文件。
注: -Wm 选项不能与 -qipa 选项一起使用。

预定义的宏

无。

示例

要编译文件 file.c 并将链接程序选项 -berok 传递给链接程序,请输入以下命令:
xlc -Wl,-berok file.c
要编译文件 uses_many_symbols.c 和组合件文件 produces_warnings.s ,以便使用汇编程序选项 组装 produces_warnings.s ,并使用选项 -s (对象文件的写列表和条带最终可执行文件) 链接对象文件,请发出以下命令:
xlc -Xassembler -alh produces_warnings.s -Xlinker -s uses_many_symbols.c 
xlc -Wa,-alh produces_warnings.s -Wl,-s uses_many_symbols.c

相关信息