Oracle® Solaris Studio 12.4:Fortran 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

2.2.7 无法识别的命令行参数

编译器无法识别的任何命令行参数都将解释为可能是链接程序选项、对象程序文件名或库名称。

基本区别是:

  • 无法识别的选项(带有 -)会生成警告。

  • 无法识别的非选项(不带 -)不生成警告。但是,这些非选项将被传递给链接程序,如果链接程序无法识别它们,它们将生成链接程序错误消息。

例如:

demo% f95 -bit move.f           <-  -bit is not a recognized f95 option
f95: Warning: Option -bit passed to ld, if ld is invoked, ignored otherwise
demo% f95 fast move.f           <-   The user meant to type -fast
ld: fatal: file fast: cannot open file; errno=2
ld: fatal: File processing errors.  No output written to a.out

请注意,在第一个示例中,f95 无法识别 -bit,该选项将被传递给链接程序 (ld),后者试图对其进行解释。因为单字母 ld 选项可以串联起来,所以链接程序会将 -bit 视为 -b -i -t,而这些都是合法的 ld 选项!这可能是(也可能不是)用户所希望的结果。

在第二个示例中,用户本想键入 f95 选项 -fast,但忽略了前导短划线。编译器再次将参数传递给链接程序,而链接程序将参数解释为一个文件名。

这些示例表明在编写编译器命令行时应格外小心!