Oracle Solaris Studio 12.2:C++ 用户指南

A.2.153 –xnolib

禁用与缺省系统库链接

通常(不含该选项)情况下,C++ 编译器会链接多个系统库以支持 C++ 程序。使用该选项时,用于链接缺省系统支持库的 -llib 不会传递给 ld

通常情况下,编译器按照以下顺序链接系统支持库:


-lCstd -lCrun -lm -lc

-lC -lm -lc

- l 选项的顺序非常重要。-lm 选项必须位于 -lc 之前。


注 –

如果指定了 -mt 编译器选项,编译器通常先与 -lthread 链接,然后再与 -lm 链接。


要确定在缺省情况下将链接哪些系统支持库,请使用 -dryrun 选项进行编译。例如,以下命令的输出:


example% CC foo.cc -xarch=v9 -dryrun

在输出中包括了以下内容:


-lCstd -lCrun -lm -lc

A.2.153.1 示例

对于符合 C 应用程序二进制接口的基本编译(即只支持 C 所需的 C++ 程序),请使用:


example% CC– xnolib test.cc –lc

要将 libm 静态链接到具有通用体系结构指令集的单线程应用程序中,请使用:

交互

如果指定了 – xnolib,就必须按给定顺序手动链接所有必需的系统支持库。必须最后链接系统支持库。

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

警告

许多 C++ 语言功能要求使用 libC(兼容模式)或 libCrun(标准模式)。

系统支持库的集合不稳定,会因不同的发行版本而更改。

另请参见

–library–staticlib–l