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

第 2 部分编写 C++ 程序

4.  语言扩展

5.  程序组织

6.  创建和使用模板

7.  编译模板

8.  异常处理

9.  改善程序性能

10.  生成多线程程序

第 3 部分库

11.  使用库

12.  使用 C++ 标准库

13.  使用传统 iostream

14.  生成库

14.1 了解库

14.2 生成静态(归档)库

14.3 生成动态(共享)库

14.4 生成包含异常的共享库

14.5 生成专用的库

14.6 生成公用的库

14.7 生成具有 C API 的库

14.8 使用 dlopen 从 C 程序访问 C++ 库

第 4 部分附录

A.  C++ 编译器选项

B.  Pragma

词汇表

索引

14.2 生成静态(归档)库

生成静态(归档)库的机制与生成可执行文件相似。可以使用 CC-xar 选项将一组目标 (.o) 文件组合到单个库中。

可以使用 CC -xar 而非直接使用 ar 命令来生成静态(归档)库。C++ 语言通常要求编译器维护的信息比传统 .o 文件提供的信息多,尤其是模板实例。– xar 选项可确保所有必要信息(包括模板实例)都包括在库中。在常规编程环境下,可能无法完成该操作,因为 make 可能无法确定实际创建和引用了哪些模板文件。如果没有 CC -xar,所引用的模板实例可能不能根据需要包括在库中。例如:

% CC -c foo.cc # Compile main file, templates objects are created.
% CC -xar -o foo.a foo.o # Gather all objects into a library.

–xar 标志会使 CC 创建静态(归档)库。要为新建的库命名,需要使用 – o 指令。编译器检查命令行上的目标文件,交叉引用这些目标文件与模板系统信息库中的目标文件,并将用户的目标文件所需的模板(以及主目标文件本身)添加到归档文件中。


注 - 仅可将 -xar 标志用于创建或更新现有归档文件。不要用它来维护归档。-xar 选项与 ar -cr 等效。


在每个 .o 文件中只放置一个函数。如果您链接了某个归档文件,则在需要该归档文件中特定 .o 文件中的符号时,该 .o 文件将整个链接到应用程序中。当每个 .o 文件中只放置一个函数时,将只会从归档文件中链接应用程序所需的那些符号。