JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.3:C++ 用户指南     Oracle Solaris Studio 12.3 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分C++ 编译器

1.  C++ 编译器

2.  使用 C++ 编译器

3.  使用 C++ 编译器选项

3.1 语法概述

3.2 通用指南

3.3 按功能汇总的选项

3.3.1 代码生成选项

3.3.2 编译时性能选项

3.3.3 编译时选项和链接时选项

3.3.4 调试选项

3.3.5 浮点选项

3.3.6 语言选项

3.3.7 库选项

3.3.8 已过时选项

3.3.9 输出选项

3.3.10 运行时性能选项

3.3.11 预处理程序选项

3.3.12 分析选项

3.3.13 参考选项

3.3.14 源文件选项

3.3.15 模板选项

3.3.16 线程选项

3.4 用户提供的缺省选项文件

第 2 部分编写 C++ 程序

4.  语言扩展

5.  程序组织

6.  创建和使用模板

7.  编译模板

8.  异常处理

9.  改善程序性能

10.  生成多线程程序

第 3 部分库

11.  使用库

12.  使用 C++ 标准库

13.  使用传统 iostream

14.  生成库

第 4 部分附录

A.  C++ 编译器选项

B.  Pragma

词汇表

索引

3.4 用户提供的缺省选项文件

通过缺省编译器选项文件,用户可以指定一组应用于所有编译的缺省选项,除非另行覆盖。例如,该文件可以指定所有编译的缺省级别为 —xO2 ,或自动包括文件 setup.il

启动时,编译器会搜索缺省选项文件,并列出应对所有编译包含的缺省选项。环境变量 SPRO_DEFAULTS_PATH 可指定要在其中搜索缺省文件的冒号分隔目录列表。

如果该环境变量未设置,则会使用一组标准缺省设置。如果该环境变量已设置但为空,则不会使用任何缺省设置。

缺省文件名的格式必须是 compiler.defaults,其中 compiler 为以下值之一:cc、c89、c99、CC、ftnlint。例如,C++ 编译器的缺省值为 CC.defaults

如果在 SPRO_DEFAULTS_PATH 列出的目录中找到编译器的缺省文件,编译器将读取该文件并在命令行上处理各选项之前先处理这些选项。系统将使用找到的第一个缺省文件,并且会终止搜索。

系统管理员可以在 Studio-install-path/prod/etc/config 中创建系统范围的缺省文件。如果设置了该环境变量,则不会读取已安装的缺省文件。

缺省文件的格式与命令行类似。该文件的每一行都可以包含一个或多个由空格分隔的编译器选项。Shell 扩展(例如通配符和替换)将不会应用于缺省文件中的选项。

SPRO_DEFAULTS_PATH 的值和完全扩展的命令行将显示在由选项 —#, —###,—dryrun 生成的详细输出中。

用户在命令行上指定的选项通常会优先于从缺省文件读取的选项。例如,如果缺省文件指定使用 —xO4 进行编译,而用户在命令行上指定 —xO2,则会使用 —xO2

缺省选项文件中显示的某些选项将附加在命令行中指定的选项之后。这些选项包括预处理程序选项 —I、链接程序选项 —B、—L、—R—l 以及所有文件参数(例如源文件、目标文件、归档和共享对象)。

以下是如何使用用户提供的缺省编译器选项启动文件的示例。

demo% cat /project/defaults/CC.defaults
-I/project/src/hdrs —L/project/libs —llibproj —xvpara
demo% setenv SPRO_DEFAULTS_PATH /project/defaults
demo% CC —c —I/local/hdrs —L/local/libs —lliblocal tst.c

此命令现在等效于:

CC -fast —xvpara —c —I/local/hdrs —L/local/libs —lliblocal tst.c \ 
     —I/project/src/hdrs —L/project/libs —llibproj

尽管编译器缺省文件提供了可为整个项目设置缺省值的便利方法,但它也可能成为问题难以诊断的原因。将环境变量 SPRO_DEFAULTS_PATH 设置为当前目录以外的绝对路径可避免出现此类问题。

缺省选项文件的接口稳定性未确定。选项处理顺序在以后的发行版中可能会更改。