可以使用 –verbose 选项选项在编译程序时显示有用信息,例如调用的程序的名称和版本号以及每个编译阶段的命令行。
命令行上编译器无法识别的任何参数都解释为链接程序选项、目标程序文件名或库名称。
基本区别是:
对于无法识别的非选项(即前面没有短划线或加号),不会生成警告。(然而,这些选项会传递到链接程序。如果链接程序无法识别它们,将会生成链接程序错误消息。)
在以下示例中,请注意,CC 无法识别 -bit,该选项传递给链接程序 (ld),它会尝试解释该选项。因为一个字母的 ld 选项可以连在一起,所以链接程序将 -bit 视为 -b -i -t,所有这些都是合法的 ld 选项。这可能并不是您所希望看到的结果:
example% CC -bit move.cc < - -bit is not a recognized CC option CC: Warning: Option -bit passed to ld, if ld is invoked, ignored otherwise |
在下一个示例中,用户本想键入 CC 选项 -fast,但遗漏了前导短划线。编译器又一次将参数传递到链接程序,而链接程序将参数解释为文件名称:
example% CC fast move.cc < - The user meant to type -fast move.CC: ld: fatal: file fast: cannot open file; errno=2 ld: fatal: File processing errors. No output written to a.out |