始终检查文档
-Wa,选项
将选项作为选项传递给汇编器。如果选项包含逗号,则在逗号处将其拆分为多个选项。
所以在你的例子中
-a
和 -ad
被传递给汇编器,它们的作用取决于你的汇编器。 Gcc 不知道如何处理特定于系统的汇编器选项,因此给它 -Wa
标志让它知道只传递后面的内容。
您还可以通过手册页在本地找到文档。要打开 GNU 汇编器的文档,请执行:
$ man 1 as
它将打开:
AS(1) GNU Development Tools AS(1)
NAME
AS - the portable GNU assembler.
SYNOPSIS
as [-a[cdghlns][=file]] [--alternate] [-D]
[--compress-debug-sections] [--nocompress-debug-sections]
[--debug-prefix-map old=new]
[--defsym sym=val] [-f] [-g] [--gstabs]
[--gstabs+] [--gdwarf-2] [--gdwarf-sections]
[--help] [-I dir] [-J]
[-K] [-L] [--listing-lhs-width=NUM]
[--listing-lhs-width2=NUM] [--listing-rhs-width=NUM]
[--listing-cont-lines=NUM] [--keep-locals] [-o
objfile] [-R] [--reduce-memory-overheads] [--statistics]
[-v] [-version] [--version] [-W] [--warn]
[--fatal-warnings] [-w] [-x] [-Z] [@FILE]
[--size-check=[error|warning]]
[--target-help] [target-options]
[--|files ...]
...
由于这些选项被传递给汇编器,因此您需要检查手册页中的
as
,而不是 gcc
。
-a
打开汇编输出列表(写入标准输出),而 -ad
忽略输出列表中的任何调试指令。
为了查看 bash 中任何命令的选项列表,您可以运行以下命令:
man COMMAND
在这种情况下
man gcc
将显示
-Wa,option
的含义如下:
将选项作为选项传递给汇编器。如果选项包含逗号, 它以逗号分隔为多个选项。