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++ 编译器

2.1 入门

2.2 调用编译器

2.2.1 命令语法

2.2.2 文件名称约定

2.2.3 使用多个源文件

2.3 使用不同编译器版本进行编译

2.4 编译和链接

2.4.1 编译和链接序列

2.4.2 分别编译和链接

2.4.3 一致编译和链接

2.4.4 针对 64 位内存模型进行编译

2.4.5 编译器命令行诊断

2.4.6 了解编译器的组织

2.5 预处理指令和名称

2.5.1 Pragma

2.5.2 具有可变数目的参数的宏

2.5.3 预定义的名称

2.5.4 警告和错误

2.6 内存要求

2.6.1 交换空间大小

2.6.2 增加交换空间

2.6.3 虚拟内存的控制

2.6.4 内存要求

2.7 将 strip 命令用于 C++ 目标

2.8 简化命令

2.8.1 在 C Shell 中使用别名

2.8.2 使用 CCFLAGS 指定编译选项

2.8.3 使用 make

2.8.3.1 在 make 中使用 CCFLAGS

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

第 2 部分编写 C++ 程序

4.  语言扩展

5.  程序组织

6.  创建和使用模板

7.  编译模板

8.  异常处理

9.  改善程序性能

10.  生成多线程程序

第 3 部分库

11.  使用库

12.  使用 C++ 标准库

13.  使用传统 iostream

14.  生成库

第 4 部分附录

A.  C++ 编译器选项

B.  Pragma

词汇表

索引

2.6 内存要求

编译需要的内存量取决于多个参数,包括:

在 SPARC 平台上,如果优化器用完了所有内存,那么它将通过在较低优化级别上重试当前过程来尝试恢复。然后优化器将以在命令行上通过 -xOlevel 选项指定的原始级别恢复后续例程。

如果编译包括大量例程的单独源文件,编译器可能会用完所有内存或交换空间。可以尝试降低优化级别。或者,将最大的过程分为其自身的单独文件。

2.6.1 交换空间大小

swap -s 命令用于显示可用的交换空间。有关更多信息,请参见 swap(1M) 手册页。

以下示例演示了 swap 命令的用法:

example% swap -s
total: 40236k bytes allocated + 7280k reserved = 47516k used, 1058708k available

2.6.2 增加交换空间

使用 mkfile(1M) 和 swap(1M) 可增加工作站上交换空间的大小。(您必须成为超级用户才能执行该操作)。mkfile 用于命令创建特定大小的文件,而 swap -a 用于将文件增加到系统交换空间:

 example# mkfile -v 90m /home/swapfile
 /home/swapfile 94317840 bytes
 example# /usr/sbin/swap -a /home/swapfile

2.6.3 虚拟内存的控制

-xO3 或更高级别编译非常大型的例程(一个过程中有数几千行代码)需要大量内存。在这种情况下,系统性能可能降低。您可以通过限制单个进程的可用虚拟内存量来控制内存占用。

要在 sh shell 中限制虚拟内存,请使用 ulimit 命令。有关更多信息,请参见 sh(1) 手册页。

以下示例显示了如何将虚拟内存限制为 4GB:

 example$ ulimit -d 4000000

csh shell 中,可使用 limit 命令限制虚拟内存。有关更多信息,请参见 csh(1) 手册页。

下一个示例也显示了如何将虚拟内存限制为 4GB:

 example% limit datasize 4G

这些示例都会使优化器在数据空间达到 4GB 时尝试恢复。

虚拟空间的限制不能大于系统总的可用交换空间。在实际使用时,虚拟空间的限制要足够的小,以允许在大型编译过程中正常使用系统。

请确保编译不会消耗一半以上的交换空间。

有 8GB 的交换空间时,请使用以下命令:

sh shell 中:

example$ ulimit -d 4000000

csh shell 中:

example% limit datasize 4G

最佳设置取决于要求的优化程度、实际内存量和可用的虚拟内存量。

2.6.4 内存要求

工作站至少应有 2 GB 内存。有关详细要求,请参见产品发行说明。