3.3 选项摘要
在本节中,为了便于参考,将按功能对编译器选项进行分组。有关详细信息,请参见以下几节中相应页面上的内容。
请注意,并非所有选项在 SPARC 和 x64/x86 平台上都可用。有关可用性的说明,请查看详细的参考部分。
下表按功能汇总 f95 编译器选项。该表不包括已过时的和传统的选项标志。某些标志用于多个目的,因此出现多次。
表 3-3 按功能分组的编译器选项
|
|
编译模式: |
|
仅编译;不生成可执行文件 |
-c |
|
显示由驱动程序生成的命令,但不进行编译 |
-dryrun |
|
支持 Fortran 77 扩展和兼容性 |
-f77 |
|
保留在编译期间所创建的临时文件。 |
-keeptmp |
|
指定要将已编译的 .mod 模块文件写入的路径 |
-moddir=path |
|
指定要编写的目标文件、库文件或可执行文件的名称 |
-o filename |
|
进行编译并只生成汇编代码 |
-S |
|
将符号表与可执行文件分离 |
-s |
|
禁止编译器消息(错误消息除外) |
-silent |
|
定义临时文件所在目录的路径 |
-temp=path |
|
显示每个编译阶段占用的时间 |
-time |
|
显示编译器的版本号及其阶段 |
-V |
|
冗余消息 |
-v |
|
指定非标准别名情况 |
-xalias=list |
|
使用多个处理器进行编译 |
-xjobs=n |
已编译的代码: |
|
对于外部名称,增加/删除尾随下划线 |
-ext_names=x |
|
内联指定的用户函数 |
-inline=list |
|
与编译位置无关的代码 |
-KPIC/-kpic |
|
内联某些数学库例程 |
-libmil |
|
STOP 将整数状态值返回给 shell |
-stop_status[=yn] |
|
指定代码地址空间 |
-xcode=x |
|
启用预取指令。 |
-xprefetch[=x] |
|
指定可选寄存器的使用 |
-xregs=x |
|
指定缺省数据映射 |
-xtypemap=x |
数据对齐: |
|
指定对齐 COMMON 块中的数据 |
-aligncommon[=n] |
|
强制对齐
COMMON 块数据以允许双字获取/存储 |
-dalign |
|
强制所有数据按 8 字节边界对齐 |
-dbl_align_all |
|
按 8 字节边界对齐 COMMON 块数据 |
-f |
|
指定内存对齐和行为 |
-xmemalign[=ab] |
调试: |
|
启用运行时下标范围检查 |
-C |
|
为使用 dbx 调试而进行编译 |
-g |
|
标志未声明变量的使用 |
-u |
|
检查 !$PRAGMA ASSUME
断言 |
-xassume_control=check |
|
检查在运行时栈是否溢出 |
-xcheck=stkovf |
|
启用运行时任务普通检查 |
-xcommonchk |
|
为性能分析器进行编译 |
-xF |
|
生成交叉引用列表 |
-Xlistx |
|
在没有目标文件的情况下启用调试 |
-xs |
诊断: |
|
标志非标准扩展名的使用 |
-ansi |
|
禁止显示指定的警告消息 |
-erroff= |
|
与错误消息一起显示错误标记名称 |
-errtags |
|
显示编译器选项的摘要 |
-flags、-help |
|
显示编译器的版本号及其阶段 |
-V |
|
冗余消息 |
-v |
|
冗余的并行化消息 |
-vpara |
|
显示/禁止警告消息 |
-wn |
|
显示编译器自述文件 |
-xhelp=readme |
许可: |
|
显示许可证服务器信息 |
-xlicinfo |
链接和库: |
|
允许/要求动态/静态库 |
-Bx |
|
只允许动态/静态库链接 |
-dy、-dn |
|
生成动态(共享对象)库 |
-G |
|
为动态库指定名称 |
-hname |
|
将目录增加到库搜索路径 |
-Lpath |
|
与库 libname.a 或 libname.so 链接 |
-lname |
|
不将库搜索路径生成到可执行文件中。 |
-norunpath |
|
将运行时库搜索路径生成到可执行文件中 |
-Rpath |
|
禁用递增链接程序 ild |
-xildoff |
|
与优化的数学库链接 |
-xlibmopt |
|
与 Sun 性能库链接 |
-xlic_lib=sunperf |
|
链接编辑器选项 |
-zx |
|
在不重定位的情况下生成纯库 |
-ztext |
数字和浮点: |
|
使用非标准浮点首选项 |
-fnonstd |
|
选择非标准浮点 |
-fns |
|
启用输入过程中的运行时浮点溢出 |
-fpover |
|
选择 IEEE 浮点舍入模式 |
-fpround=r |
|
选择浮点优化级别 |
-fsimple=n |
|
选择浮点捕获模式 |
-ftrap=t |
|
指定用于格式化输入/输出的舍入方法 |
-iorounding=mode |
|
将单精度常数提升为双精度常量 |
-r8const |
|
启用区间运算并设置相应的浮点环境(包括 -xinterval) |
-xia[=e] |
|
启用区间运算扩展 |
-xinterval[=e] |
优化与性能: |
|
分析循环以了解数据依赖性 |
-depend |
|
使用所选的选项进行优化 |
-fast |
|
指定优化级别 |
-On |
|
填充数据布局以便高效使用高速缓存 |
-pad[=p] |
|
在内存栈上分配局部变量 |
-stackvar |
|
启用循环解开 |
-unroll[=m] |
|
启用跨源文件的优化 |
-xcrossfile[=n] |
|
调用过程间优化传递 |
-xipo[=n] |
|
为 #pragma OPT
设置最高优化级别 |
-xmaxopt[=n] |
|
针对编译后优化进行编译 |
-xbinopt=prepare |
|
启用/调整编译器生成的预取指令 |
-xprefetch=list |
|
控制预取指令的自动生成 |
-xprefetch_level=n |
|
启用性能分析数据的生成或使用 |
-xprofile=p |
|
断言不会出现基于内存的陷阱 |
-xsafe=mem |
|
不执行增加代码大小的优化 |
-xspace |
|
自动生成对向量库函数的调用 |
-xvector[=yn] |
并行化: |
|
启用 DO 循环的自动并行化 |
-autopar |
|
显示循环的并行化信息 |
-loopinfo |
|
为手动编码的多线程编程进行编译 |
-mt |
|
接受 OpenMP API 指令并设置相应的环境 |
-xopenmp[=keyword] |
|
识别具有自动并行化的循环中的约简操作 |
-reduction |
|
冗余的并行化消息 |
-vpara |
源代码: |
|
定义预处理程序符号 |
-Dname[=val] |
|
未定义预处理程序符号 |
-Uname |
|
接受扩展(132 个字符)源行 |
-e |
|
将预处理程序应用于 .F 和/或 .F90 及 .F95
文件,但不进行编译 |
-F |
|
接受 Fortran 95 固定格式输入 |
-fixed |
|
使用 fpp 预处理程序对所有源文件进行预处理 |
-fpp |
|
接受 Fortran 95 自由格式输入 |
-free |
|
将目录添加到 include 文件搜索路径 |
-Ipath |
|
将目录添加到模块搜索路径 |
-Mpath |
|
区分大小写 |
-U |
|
在实际参数中将霍尔瑞斯常数视为字符 |
-xhasc={yes|no} |
|
选择要使用的预处理程序(cpp 或
fpp) |
-xpp[={fpp|cpp}] |
|
允许递归子程序调用 |
-xrecursive |
目标平台: |
|
指定内存模型(32 位或 64 位)。 |
-m32 | —m64 |
|
为优化器指定目标平台指令集 |
-xarch=a |
|
为优化器指定目标高速缓存属性 |
-xcache=a |
|
为优化器指定目标处理器 |
-xchip=a |
|
为优化器指定目标平台 |
-xtarget=a |
|
3.3.1 常用选项
编译器有许多可通过可选命令行参数选择的功能。下面的简要列表列出了一些常用选项,让您一睹为快。
表 3-4 常用选项
|
|
调试-在例程之间进行全局程序检查以确保参数、通用块等的一致性。 |
–Xlist |
调试-生成其他用于启用 dbx 和调试的符号表信息。 |
–g |
性能-调用优化器以生成运行速度更快的程序。 |
–O[n] |
性能-使用一组预先确定的选项,为本机平台生成高效的编译时和运行时。 |
–fast |
动态 (–Bdynamic) 或静态 (–Bstatic) 库绑定。 |
–Bx |
仅编译-禁止链接;为每个源文件生成一个 .o 文件。 |
–c |
输出文件-将可执行输出文件命名为 nm
而不是 a.out。 |
–o nm |
源代码-编译固定格式的 Fortran 源代码。 |
-fixed |
|
3.3.2 宏标志
某些选项标志是可扩展为由其他标志组成的特定集合的宏。之所以提供这些选项标志,是为了便于指定通常一起用来选择某项功能的多个选项。
表 3-5 宏选项标志
|
|
-dalign |
-xmemalign=8s -aligncommon=16 |
-f |
-aligncommon=16 |
-fast |
有关完整的当前扩展,请参见 —fast 说明。 |
-fnonstd |
-fns -ftrap=common |
-xia=widestneed |
-xinterval=widestneed -ftrap=%none -fns=no -fsimple=0 |
-xia=strict |
-xinterval=strict -ftrap=%none -fns=no -fsimple=0 |
-xtarget |
-xarch=a -xcache=b -xchip=c |
|
命令行上跟在宏标志后面的设置将覆盖或增加宏扩展。
3.3.3 向后兼容性和传统选项
提供以下选项的目的是为了与早期发行版的编译器和某些 Fortran 传统功能实现向后兼容。
表 3-6 向后兼容性选项
|
|
通过 ENTRY 语句保留实际参数。 |
-arg=local |
允许为常量参数赋值。 |
–copyargs |
在调用参数列表中将霍尔瑞斯常数视为字符或无类型。 |
-xhasc[={yes|no}] |
支持 Fortran 77 扩展和约定 |
-f77 |
非标准运算—允许非标准运算。 |
–fnonstd |
为主机系统优化性能。 |
–native |
DO 循环—使用单程
DO 循环。 |
–onetrip |
允许存在传统的别名情况 |
-xalias=keywords |
|
建议在生成可移植的 Fortran 程序时不要使用这些选项标志。
3.3.4 已过时的选项标志
下面的选项被认为是已过时的,不应使用它们。在编译器的以后发行版本中可能会删除这些选项。
表 3-7 过时的 f95 选项
|
|
|
-xprofile=tcov |
|
-xtarget=ss2 |
-cg92 |
-xtarget=ss1000 |
|
-xtarget=native |
|
许可证排队。不再需要。 |
-p |
分析。使用 -pg 或性能分析器 |
|
-xcode=pic13 |
|
-xcode=pic32 |
|
忽略。 |
-sbfast |
忽略。 |
-silent |
忽略。 |
-xarch={v7,v8,v8a} |
使用 —m32 |
|