C++ 编译器附带了一些库。其中一些只能在兼容模式 (-compat=4) 下使用,有些只能在标准模式 (–compat=5) 下使用,有些可以在这两种模式下使用。libgc 和 libdemangle 库都有 C 接口,可以在任何模式下链接到应用程序。
下表列出了随 C++ 编译器提供的库,以及可以使用这些库的模式。
表 12–1 C++ 编译器附带的库
库 |
说明 |
可用模式 |
---|---|---|
libstlport |
标准库的 STLport 实现。 |
–compat=5 |
libstlport_dbg |
调试模式的 STLport 库 |
–compat=5 |
C++ 运行时 |
–compat=5 |
|
C++ 标准库 |
–compat=5 |
|
传统 iostream |
–compat=5 |
|
C++ 运行时,传统 iostream |
–compat=4 |
|
支持 -xia 选项 |
–compat=5 |
|
complex 库 |
–compat=4 |
|
librwtool |
Tools.h++ 7 |
–compat=4、– compat=5 |
支持调试的 Tools.h++ 7 |
–compat=4、–compat=5 |
|
垃圾收集 |
C 接口 |
|
还原 |
C 接口 |
请勿重新定义或修改用于 STLport、Rogue Wave 或 Sun Microsystems C++ 库的任何配置宏。库是按照适用于 C++ 编译器的方式进行配置和生成的。libCstd 和 Tool.h++ 配置为可互操作,因此,修改配置宏会导致程序不能编译、不能链接或不能正常运行。
以下是这些库中每个库的简单描述。
libCrun:该库包含了标准模式 (–compat=5) 下编译器所需的运行时支持,并提供了对 new/delete、异常及 RTTI 的支持。
libCstd:这是 C++ 标准库。具体来说,该库包含了 iostream。如果有使用传统 iostream 的现有源代码,而且要使用标准 iostream,必须修改源代码以符合新接口。有关详细信息,请参见《C++ 标准库参考》联机手册。要访问该手册,请在 Web 浏览器中输入:
file:/opt/SUNWspro/docs/index.html |
如果您的编译器软件没有安装在 /opt 目录中,请向系统管理员询问该软件在系统中的安装路径。
libiostream:这是使用 – compat=5 生成的传统 iostream 库。如果有使用传统 iostream 的源代码,且要在标准模式 (–compat=5) 下编译这些源代码,可以使用 libiostream 而不必修改源代码。可使用 – library=iostream 获取此库。
标准库的很大部分取决于使用的标准 iostream。在相同程序中使用传统的 iostream 可能会出现问题。
libC:这是兼容模式 (–compat=4) 下所需的库。该库包含了 C++ 运行时支持和传统 iostream。
libcomplex:该库提供了兼容模式 (-compat=4) 下的复数运算。在标准模式下,可使用 libCstd 中的复数运算功能。
libstlport:这是 C++ 标准库的 STLport 实现。可以通过指定选项 -library=stlport4,使用该库而非缺省的 libCstd。但不能在同一程序中同时使用 libstlport 和 libCstd。您必须使用其中之一编译和链接包括输入库在内的一切项目。
librwtool (Tools.h++):Tools.h++ 是源自 RogueWave 的 C++ 基础类。本发行版本提供了该库的版本 7。能够以传统 iostream 形式 (-library=rwtools7) 和标准 iostream 形式 (-library=rwtools7_std) 使用该库。关于该库的更多信息,请参见以下联机文档。
《Tools.h++ 用户指南》(版本 7)
《Tools.h++ 类库参考》(版本 7)
要访问该文档,请在 Web 浏览器中输入:
file:/opt/SUNWspro/docs/index.html |
如果您的编译器软件没有安装在 /opt 目录中,请向系统管理员询问该软件在系统中的安装路径。
libgc:该库用于部署模式或垃圾收集模式。只是与 libgc 库链接就会自动且永久修复程序的内存泄漏。虽然能以其他方式正常编程,但如果将程序与 libgc 库链接,则无需调用 free 或 delete 就可完成编程。垃圾收集库对动态装入库具有依赖性,因此在链接程序时要指定 -lgc 和 -ldl。
有关其他信息,请参见 gcFixPrematureFrees(3) 和 gcInitialize(3) 手册页。
libdemangle:该库用于还原 C++ 损坏名称。
/opt/SUNWspro/man/man1
/opt/SUNWspro/man/man3
/opt/SUNWspro/man/man3C++
/opt/SUNWspro/man/man3cc4
如果您的编译器软件没有安装在 /opt 目录中,请向系统管理员询问该软件在系统中的安装路径。
要访问这些手册页,请确保 MANPATH 包括 /opt/SUNWspro/man(或系统上该编译器软件的相应安装路径)。
要访问 C++ 库的手册页,请输入:
example% man library-name |
要访问 C++ 库版本 4.2 的手册页,请输入:
example% man -s 3CC4 library-name |
file:/opt/SUNWspro/docs/index.html |
缺省情况下,CC 驱动程序会链接其中一些 C++ 库,而其他库需要显式链接。在标准模式下,CC 驱动程序缺省链接下列库:
-lC -lm -lc
有关更多信息,请参见A.2.49 -library=l[ ,l...]。