A.1 按功能汇总的选项
在本节中,编译器选项按功能分组以便提供快速参考。有关各个选项的详细说明,请参阅表 A-15 和附录 B。某些标志用于多个目的,因此出现多次。
这些选项适用于除了特别注明之外的所有平台;基于 SPARC 的系统所特有的功能标识为 (SPARC),基于 x86/x64 的系统所特有的功能标识为 (x86)。仅适用于 Solaris 平台的选项标记为 (Solaris)。适用于仅 Linux 平台的选项标记为
(Linux)。
A.1.1 优化和性能选项
表 A-1 优化和性能选项表
|
|
-fast |
选择编译选项 的最佳组合,以加快可执行代码的编译速度。 |
-fma |
(SPARC) 启用自动生成浮点乘加指令。 |
-p |
|
-xalias_level |
|
-xannotate |
(Solaris) 指示编译器创建以后可由诸如 binopt(1) 之类的二进制修改工具进行转换。 |
-xbinopt |
|
-xbuiltin |
|
-xdepend |
|
-xF |
|
-xhwcprof |
(SPARC) 允许编译器支持 基于硬件计数器的分析。 |
-xinline |
|
-xinstrument |
编译程序并为其提供程序设备以便 Thread Analyzer 对其进行分析。 |
-xipo |
|
-xipo_archive |
|
-xjobs |
|
-xlibmil |
|
-xlic_lib=sunperf |
|
-xlinkopt |
|
-xlibmopt |
|
-xmaxopt |
此 命令会将 pragma opt 级别限制为指定级别。 |
-xnolibmil |
|
-xnolibmopt |
|
-x0 |
|
-xnorunpath |
禁止在可执行文件中包含共享库的运行时搜索路径。 |
-xpagesize |
|
-xpagesize_stack |
|
-xpagesize_heap |
|
-xpch |
缩短 其源文件共享同一组 include 文件的应用程序的编译时间。 |
-xpec |
生成一个可与自动调优系统 (Automatic Tuning System,
ATS) 一起使用的可移植的可执行代码 (Portable Executable Code, PEC) 二进制文件。有关更多信息,请访问 http://cooltools.sunsource.net。 |
-xpchstop |
可与 -xpch 结合使用以指定活前缀的最后一个 include 文件。 |
-xpentium |
(x86)
针对 Pentium 处理器进行优化。 |
-xprefetch |
|
-xprefetch_level |
控制 -xprefetch=auto 设置的自动插入预取指令的主动性。 |
-xprefetch_auto_type |
|
-xprofile |
|
-xprofile_ircache |
通过重用 -xprofile=collect 阶段保存的编译数据缩短 -xprofile=use 阶段的编译时间。 |
-xprofile_pathmap |
|
-xrestrict |
|
-xsafe |
(SPARC) 允许 编译器假定不会发生基于内存的陷阱。 |
-xspace |
|
-xunroll |
|
|
A.1.2 编译时选项和链接时选项
下表列出了在链接时和编译时都必须指定的选项。
表 A-2 编译时选项和链接时选项表
|
|
-fast |
选择编译选项 的最佳组合,以加快可执行代码的编译速度。 |
-m32|-m64 |
指定编译的二进制对象的内存模型。 |
-mt |
扩展 为 -D_REENTRANT -lthread 的宏选项。 |
-p |
准备 目标代码,以便收集数据使用 prof(1) 进行文件配置。 |
-xarch |
|
-xautopar |
|
-xhwcprof |
(SPARC) 允许编译器支持 基于硬件计数器的分析。 |
-xipo |
|
-xlinkopt |
|
-xmemalign |
(SPARC) 指定 最大假定内存对齐以及未对齐数据访问的行为。 |
-xopenmp |
支持 显式并行化 OpenMP 接口,包括一组源代码指令、运行时库例程和环境变量。 |
-xpagesize |
|
-xpagesize_stack |
|
-xpagesize_heap |
|
-xpg |
准备 目标代码,以便收集数据使用 gprof(1)
进行文件配置。 |
-xprofile |
|
-xvector=lib |
|
|
A.1.3 数据对齐选项
表 A-3 数据对齐选项表
|
|
-xchar_byte_order |
通过 按指定字节顺序排列多字符字符常量的字符来生成整型常量。 |
-xdepend |
|
-xmemalign |
(SPARC) 指定 最大假定内存对齐以及未对齐数据访问的行为。 |
-xopenmp |
支持 显式并行化 OpenMP 接口,包括一组源代码指令、运行时库例程和环境变量。 |
|
A.1.4 数值和浮点选项
表 A-4 数值和浮点选项表
|
|
-flteval |
|
-fma |
(SPARC) 启用自动生成浮点乘加指令。 |
-fnonstd |
|
-fns |
|
-fprecision |
|
-fround |
设置 程序初始化期间运行时建立的 IEEE 754 舍入模式。 |
-fsimple |
|
-fsingle |
导致 编译器按单精度而非双精度计算 float 表达式。 |
-fstore |
(x86) 导致 编译器将浮点表达式或函数的值转换为赋值左侧的类型。 |
-ftrap |
|
-nofstore |
(x86) 不 将浮点表达式或函数的值转换为赋值左侧的类型。 |
-xdepend |
|
-xlibmieee |
强制 IEEE
754 样式在异常情况下返回数学例程值。 |
-xsfpconst |
|
-xvector |
|
|
A.1.5 并行化选项
表 A-5 并行化选项表
|
|
-mt |
扩展 为 -D_REENTRANT -lthread 的宏选项。 |
-xautopar |
|
-xcheck |
|
-xdepend |
分析循环以了解迭代间数据依赖性并执行循环重构。 |
-xloopinfo |
|
-xopenmp |
支持 显式并行化 OpenMP 接口,包括一组源代码指令、运行时库例程和环境变量。 |
-xreduction |
|
-xrestrict |
将返回赋值指针的函数参数视为限定指针。 |
-xvpara |
对 已指定 #pragma MP 指令但可能未针对并行化进行正确指定的循环发出警告。 |
-xthreadvar |
控制线程局部变量的实现。 |
-Zll |
为 lock_lint
创建程序数据库,但不生成可执行代码。 |
|
A.1.6 源代码选项
表 A-6 源代码选项表
|
|
-A |
将 name 作为谓词与指定的 token 相关联,这与使用 #assert 预处理指令类似。 |
-C |
阻止 预处理程序删除注释(预处理指令行中的注释除外)。 |
-D |
将 name 与指定的 标记相关联,这与使用 #define
预处理指令类似。 |
-E |
仅通过预处理程序运行 源文件,并将输出发送到 stdout。 |
-fd |
|
-H |
将当前编译期间涉及的每个文件的路径名输出到 标准错误中,每行一个路径名。 |
-I |
将目录 添加到用于搜索具有相对文件名的 #include 文件的列表中。 |
-include |
使编译器将参数 filename 视为作为 #include 预处理程序指令出现在主源文件的第一行。 |
-P |
|
-U |
|
-X |
|
-xCC |
|
-xc99 |
|
-xchar |
|
-xcsi |
允许 C
编译器接受在不符合 ISO C 源字符代码要求的语言环境中编写的源代码。 |
-xM |
对指定 C 程序仅运行 预处理程序,同时请求生成 makefile 依赖性并将结果发送到标准输出。 |
-xM1 |
收集 类似 -xM 的依赖性,但 /usr/include 文件除外。 |
-xMD
|
像 -xM 一样生成 makefile 依赖性,但包括编译。 |
-xMF |
指定可存储 makefile 依赖性信息的文件名。 |
-xMMD |
生成 makefile 依赖性,但不包括系统头文件。 |
-xP |
输出在此模块中定义的 所有 K&R C 函数的原型。 |
-xpg |
准备 目标代码,为使用
gprof(1) 进行文件配置而收集数据。 |
-xtrigraphs |
|
-xustr |
|
|
A.1.7 编译代码选项
表 A-7 编译代码选项表
|
|
-c |
指示 编译器禁止与 ld(1) 链接并在当前工作目录中为每个源文件生成一个 .o 文件。 |
-o |
|
-S |
|
|
A.1.8 编译模式选项
表 A-8 编译模式选项表
|
|
-# |
启用 详细模式,显示命令选项展开的方式以及调用的组件。 |
-### |
显示 将要调用的每个组件,但是并不真正执行。还显示命令选项扩展的过程。 |
-features |
|
-keeptmp |
|
-V |
指示
cc 在编译器执行时 输出每个组件的名称和版本 ID。 |
-W |
|
-X |
|
-xc99 |
|
-xchar |
|
-xhelp |
|
-xjobs |
|
-xpch |
缩短 其源文件共享同一组 include
文件的应用程序的编译时间。 |
-xpchstop |
可与 -xpch 结合使用以指定活前缀的最后一个 include 文件。 |
-xtemp |
|
-xtime |
|
-Y |
|
-YA |
|
-YI |
|
-YP |
|
-YS |
|
|
A.1.9 诊断选项
表 A-9 诊断选项表
|
|
-errfmt |
将 字符串 "error: " 作为错误消息的前缀,以便区分于警告消息。 |
-errhdr |
将来自头文件的警告限定到指定的组。 |
-erroff |
|
-errshort |
控制 编译器发现类型不匹配时生成的错误消息中的详细信息量。 |
-errtags |
|
-errwarn |
|
-v |
指示 编译器执行更严格的语义检查并启用类似 lint 的其他检查。 |
-w |
|
-xe |
对源文件 仅执行语法和语义检查,但不生成任何目标代码或可执行代码。 |
-xtransition |
发出 关于 K&R C
与 Solaris Studio C 之间存在差异的警告。 |
-xvpara |
对 已指定 #pragma MP 指令但可能未针对并行化进行正确指定的循环发出警告。 |
|
A.1.10 调试选项
表 A-10 调试选项表
|
|
-xcheck |
|
-g |
|
-s |
|
-xdebugformat |
生成 dwarf 格式而非
stabs 格式的调试信息。 |
-xpagesize |
|
-xpagesize_stack |
|
-xpagesize_heap |
|
-xs |
|
-xvis |
(SPARC) 启用 编译器对 VIS[tm] 指令集中定义的汇编语言模板的识别。 |
|
A.1.11 链接选项和库选项
表 A-11 链接选项和库选项表
|
|
-B |
指定 用于链接的库绑定是 static 还是 dynamic。 |
-d |
|
-G |
将 选项传递给链接编辑器,以生成共享对象而非动态链接的可执行内容。 |
-h |
|
-i |
将 选项传递给链接程序,以忽略所有
LD_LIBRARY_PATH 设置。 |
-L |
|
-l |
与 目标库 libname.so 或 libname.a 链接。 |
-mc |
删除 对象文件的 .comment 部分中重复的字符串。 |
-mr |
删除 .comment 部分中所有的字符串。也可以向目标文件的该部分中插入一个 字符串。 |
-Q |
|
-R |
将用于指定库搜索目录的、 以冒号分隔的目录列表传递给运行时链接程序。 |
-xMerge |
|
-xcode |
|
-xldscope |
控制 变量的缺省作用域和函数定义,以创建更快、更安全的共享库。 |
-xnolib |
|
-xnolibmil |
|
-xstrconst |
在以后的发行版中可能会废弃此选项。改用 -features=[no%]conststrings。 将串文字插入文本段(而非缺省数据段)的只读数据部分。 |
|
A.1.12 目标平台选项
表 A-12 目标平台选项表
|
|
-m32|-m64 |
指定编译的二进制对象的内存模型。 |
-xarch |
|
-xcache |
|
-xchip |
|
-xregs |
|
-xtarget |
|
|
A.1.13 x86 特定选项
表 A-13 x86 特定选项表
|
|
-flteval |
|
-fprecision |
|
-fstore |
导致 编译器将浮点表达式或函数的值转换为赋值左侧的类型 |
-nofstore |
|
-xmodel |
针对 Solaris x86 平台 修改 64 位对象的形式 |
-xpentium |
|
|
A.1.14 许可证选项
表 A-14 许可证选项表
A.1.15 废弃的选项
下表列出了已过时的选项。请注意,编译器仍可接受这些选项,但在以后的版本中可能不接受这些选项。所以,请尽快开始使用建议的替代选项。
表 A-15 废弃选项表
|
|
-dalign |
改用 -xmemalign=8s。 |
-KPIC (SPARC) |
改用 -xcode=pic32。 |
-Kpic (SPARC) |
改用 -xcode=pic13。 |
-misalign |
改用 -xmemalign=1i。 |
-misalign2 |
改用 -xmemalign=2i。 |
-x386 |
改用 -xchip=generic。 |
-x486 |
改用 -xchip=generic。 |
-xa |
改用
-xprofile=tcov。 |
-xarch=v7,v8,v8a |
已过时。 |
-xcg |
改用 -O,以利用 -xarch、-xchip 和 -xcache 的缺省值。 |
-xcrossfile |
改用 -xipo。 |
-xnativeconnect |
已废弃,没有替代选项。 |
-xprefetch=yes |
改用 -xprefetch=auto,explicit。 |
-xprefetch=no |
改用 -xprefetch=no%auto,no%explicit。 |
-xsb |
已废弃,没有替代选项。 |
-xsbfast |
已废弃,没有替代选项。 |
-xtarget=386 |
改用 -xtarget=generic。 |
-xtarget=486 |
改用 -xtarget=generic。 |
-xvector=yes |
改用 -xvector=lib。 |
-xvector=no |
改用
-xvector=none。 |
|