对于兼容模式 (–compat[-4]]),l 必须是下列值之一。
表 A–16 适用于兼容模式的 -library 值
值 |
含义 |
---|---|
[no%]f77 |
已过时。改用 -xlang=f77。 |
[no%]f90 |
已过时。改用 -xlang=f90。 |
[no%]f95 |
已过时。改用 -xlang=f95。 |
[no%]rwtools7 |
[不] 使用传统 iostream Tools.h++ 版本 |
[no%]rwtools7_dbg |
[不] 使用支持调试的 Tools.h++ 版本 7。 |
[no%]complex |
[不] 将 libcomplex 用于复数算术运算。 |
[no%]interval |
已过时。不要使用。使用 -xia。 |
[no%]libC |
[不] 使用C++ 支持库 libC。 |
[no%]gc |
[不] 使用垃圾收集 libgc。 |
[不] 使用 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++ 版本 |
[no%]rwtools7_dbg |
[不] 使用支持调试的 Tools.h++ 版本 7。 |
[no%]rwtools7_std |
[不] 使用传统 iostream Tools.h++ 版本 |
[no%]rwtools7_std_dbg |
[不] 使用支持调试的标准 iostream Tools.h++ 版本 |
[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。 |
兼容模式 (–compat[=4])
如果未指定 –library,则假定 -library=libC。
libC 库总是包括在内,除非使用 -library=no%libC 明确将其排除。
标准模式(缺省模式)
libCstd 库总是包括在内,除非使用 - library=%none、-library=no%Cstd 或 -library=stlport4 明确将其排除。
libCrun 库总是包括在内。
无论是标准模式还是兼容模式,libm 和 libc 库总是包括在内,即使指定了 -library=%none 也是如此。
要在标准模式下没有任何 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 选项。
该选项会累积而不覆盖。
在使用区间运算库时,必须包括以下库之一:libC、libCstd 或 libiostream。
使用 -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 |
如果同时包含 libCstd 和 libiostream,必须小心,不要在程序中同时使用新旧格式的 iostream(例如,cout 和 std::cout)访问同一个文件。如果从传统和标准 iostream 代码访问同一文件,那么在相同的程序中混合标准 iostream 和传统 iostream 可能会出现问题。
既未链接 libC 也未链接 libCrun 的程序可能无法使用 C++ 语言的所有功能。
如果指定了-xnolib,则忽略 -library。
如果在不同的步骤中进行编译和链接,那么必须在链接命令中使用在编译命令中使用的那组 -library 选项。
stlport4、Cstd 和 iostream 库都提供了自己的 I/O 流实现。如果使用 -library 选项指定其中多个库,会导致出现不确定的程序行为。关于使用 STLport 实现的更多信息,请参阅 13.3 STLport。
库的集合不稳定,会因不同的发行版本而变化。
–I、–l、–R、–staticlib、 -xia、-xlang、–xnolib、11.4.8 示例应用程序、忠告:、13.3.1 重新分发和支持的 STLport 库、2.7.3.3 将 make 与标准库头文件一起使用、《Tools.h++ 用户指南》、《Tools.h++ 类库参考》、《Standard C++ 类库参考》和《C++ Interval Arithmetic Programming Reference》。
有关使用 -library=no%cstd 选项以便能够使用自己的 C++ 标准库的信息,请参见12.7 替换 C++ 标准库。