Sun Studio 12 Update 1:C++ 用户指南

A.2.50.1 值

对于兼容模式 (–compat[-4]]),l 必须是下列值之一。

表 A–16 适用于兼容模式的 -library

值 

含义  

[no%]f77

已过时。改用 -xlang=f77

[no%]f90

已过时。改用 -xlang=f90

[no%]f95

已过时。改用 -xlang=f95

[no%]rwtools7

[不] 使用传统 iostream Tools.h++ 版本 7。

[no%]rwtools7_dbg

[不] 使用支持调试的 Tools.h++ 版本 7。

[no%]complex

[不] 将 libcomplex 用于复数算术运算。

[no%]interval

已过时。不要使用。使用 -xia

[no%]libC

[不] 使用C++ 支持库 libC

[no%]gc

[不] 使用垃圾收集 libgc

[no%]sunperf

[不] 使用 Sun Performance LibraryTM

%none

仅使用 C++ 库 libC

在标准模式(缺省模式)下,l 必须是下列值之一:

表 A–17 适用于标准模式的 -library

值 

含义  

[no%]f77

已过时。改用 -xlang=f77

[no%]f90

已过时。改用 -xlang=f90

[no%]f95

已过时。改用 -xlang=f95

[no%]rwtools7

[不] 使用传统 iostream Tools.h++ 版本 7。

[no%]rwtools7_dbg

[不] 使用支持调试的 Tools.h++ 版本 7。

[no%]rwtools7_std

[不] 使用标准 iostream Tools.h++ 版本 7。

[no%]rwtools7_std_dbg

[不] 使用支持调试的标准 iostream Tools.h++ 版本 7。

[no%]interval

已过时。不要使用。使用 -xia

[no%]iostream

[不] 使用传统 iostream 库 libiostream

[no%]Cstd

[不] 使用 C++ 标准库 libCstd。[不] 包括编译器提供的 C++ 标准库头文件。

[no%]Crun

[不] 使用 C++ 运行时库 libCrun

[no%]gc

[不] 使用垃圾收集 libgc

[no%]stlport4

[不] 使用 STLport 的标准库实现版本 4.5.3,而不是缺省的 libCstd。关于使用 STLport 实现的更多信息,请参阅 13.3 STLport

[no%]stlport4_dbg

[不] 使用 STLport 的支持调试的库。 

[no%]sunperf

[不] 使用 Sun Performance Library。 

%none

仅使用 C++ 库 libCrun

缺省值

示例

要在标准模式下没有任何 C++ 库(除 libCrun 之外)时进行链接,请使用:


example% CC -library=%none

要在标准模式下将传统 iostream Rogue tools.h++ 库包含进来,请使用:


example% CC –library=rwtools7,iostream

要在标准模式下将标准 iostream Rogue Wave tools.h++ 库包含进来,请使用:


example% CC -library=rwtools7_std

要在兼容模式下将传统 iostream Rogue Wave tools.h++ 库包含进来,请使用:


example% CC -compat -library=rwtools7

交互

如果使用 -library 指定了库,则在编译期间会设置适当的 –I 路径。在链接期间会设置适当的 –L、–Y P、–R 路径和 –l 选项。

该选项会累积而不覆盖。

在使用区间运算库时,必须包括以下库之一: libClibCstdlibiostream

使用 -library 选项可确保针对指定库的 -l 选项按正确顺序传送。例如,对于 -library=rwtools7,iostream-library=iostream,rwtools7-l 选项都是按照 -lrwtool -liostream 顺序传递给 ld

指定的库在系统支持库链接之前链接。

不能在同一个命令行上使用 -library=sunperf-xlic_lib=sunperf

在任何命令行中,最多只能使用 -library=stlport4-library=Cstd 选项之一。

每次只能使用一个 Rogue Wave 工具库,而且不能将任何 Rogue Wave 工具库与 -library=stlport4 一起使用。

在标准模式(缺省模式)下包含传统 iostream Rogue Wave 工具库时,必须也要包含 libiostream(有关其他信息,请参见《 C++ 迁移指南》。只能在标准模式下使用标准 iostream Rogue Wave 工具库。以下命令示例显示了有效使用和无效使用 Rogue Wave tools.h++ 库选项的情况。


% CC -compat -library=rwtools7 foo.cc        <-- valid
% CC -compat -library=rwtools7_std foo.cc    <-- invalid

% CC -library=rwtools7,iostream foo.cc       <-- valid, classic iostreams
% CC -library=rwtools7 foo.cc                <-- invalid

% CC -library=rwtools7_std foo.cc            <-- valid, standard iostreams
% CC -library=rwtools7_std,iostream foo.cc   <-- invalid

如果同时包含 libCstdlibiostream,必须小心,不要在程序中同时使用新旧格式的 iostream(例如,coutstd::cout)访问同一个文件。如果从传统和标准 iostream 代码访问同一文件,那么在相同的程序中混合标准 iostream 和传统 iostream 可能会出现问题。

不链接 libC 库的兼容模式程序无法使用 C++ 语言的所有功能。与之类似,不链接 Crun 或任何 Cstd 库或 stlport4 库的标准模式程序无法使用 C++ 语言的所有功能。

如果指定了 -xnolib,则忽略 -library

警告

如果在不同的步骤中进行编译和链接,那么必须在链接命令中使用在编译命令中使用的那组 -library 选项。

stlport4Cstdiostream 库都提供了自己的 I/O 流实现。如果使用 -library 选项指定其中多个库,会导致出现不确定的程序行为。关于使用 STLport 实现的更多信息,请参阅 13.3 STLport

库的集合不稳定,会因不同的发行版本而变化。

另请参见

–I–l–R–staticlib-xia-xlang–xnolib11.4.8 示例应用程序忠告:13.3.1 重新分发和支持的 STLport 库、《Tools.h++ 用户指南》、《Tools.h++ 类库参考》、《Standard C++ Class Library Reference》和《C++ Interval Arithmetic Programming Reference》。

有关使用 -library=no%cstd 选项以便能够使用自己的 C++ 标准库的信息,请参见12.7 替换 C++ 标准库