Sun Studio 12:C++ 用户指南

2.4.5 诊断编译器

可以使用 –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