指示要静态链接由 -library 选项(包括其缺省值)、-xlang 选项和 -xia 选项指定的哪些 C++ 库。
l 必须是下列值之一。
表 A–20 -staticlib 值
值 |
含义 |
---|---|
[no%]library |
[不] 静态链接 library。library 的有效值包括了 -library 的全部有效值(除 %all 和 %none 之外)、-xlang 的全部有效值以及 interval(要与 -xia 结合使用)。 |
%all |
静态链接 -library 选项中指定的所有库、-xlang 选项中指定的所有库以及(如果在命令行上指定了 -xia)区间库。 |
%none |
不静态链接在 -library 选项和 -xlang 选项中指定的库。如果在命令行上指定了 -xia,则不静态链接区间库。 |
如果没有指定 –staticlib,则假定 –staticlib=%none。
以下命令行静态链接 libCrun,因为 Crun 是 –library 的缺省值:
example% CC –staticlib=Crun (正确) |
但以下命令行并不链接 libgc,因为只有使用 -library 选项显式指定才链接 libgc:
example% CC –staticlib=gc (不正确) |
要静态链接 libgc,请使用以下命令:
example% CC -library=gc -staticlib=gc (正确) |
以下命令会动态链接 librwtool 库。因为 librwtool 不是缺省库且未使用 -library 选项选择它,因此 -staticlib 不起作用:
example% CC -lrwtool -library=iostream \ -staticlib=rwtools7 (不正确) |
该命令静态链接 librwtool 库:
example% CC -library=rwtools7,iostream -staticlib=rwtools7 (正确) |
该命令将动态链接 Sun 性能库,因为 -library=sunperf 必须与 -staticlib=sunperf 结合使用,-staticlib 选项才能对这些库的链接有效:
example% CC -xlic_lib=sunperf -staticlib=sunperf (不正确) 该命令将静态链接 Sun 性能库: |
example% CC -library=sunperf -staticlib=sunperf (正确) |
该选项会累积而不覆盖。
除缺省情况下隐式选择的 C++ 库之外,-staticlib 选项仅对使用-xia 选项、-xlang 选项和 -library 选项显式选择的 C++ 库有效。在兼容模式 (-compat=[4]) 下,缺省选择 libC。在标准模式(缺省模式)下,缺省选择 Cstd 和 Crun。
使用 -xarch=v9、-xarch=v9a 或 -xarch=v9b (或等价的 64 位体系结构选项)时,某些 C++ 库不能用作静态库。
library 的允许值集合不确定,会随发行版的不同而异。
使用 -xarch=v9、-xarch=v9a 或 -xarch=v9b(或等价的 64 位体系结构选项)时,某些库不能用作静态库。
选项 -staticlib=Crun 和 -staticlib=Cstd 不能用于 64 位 Solaris x86 平台。Sun 建议不要在任何平台上静态链接这些库。在某些情况下,静态链接可能会使程序无法正常运行。
-library 和12.5 静态链接标准库