Oracle® Developer Studio 12.5:C++ 用户指南

退出打印视图

更新时间: 2016 年 7 月
 
 

11.3 相关的库选项

CC 驱动程序提供了一些选项来帮助用户使用库。

  • -l 选项用于指定要链接的库。

  • -L 选项用于指定要在其中搜索库的目录。

  • -mt 选项用于编译和链接多线程代码。

  • -xia 选项用于链接区间运算库。

  • -xlang 选项用于链接 Fortran 或 C99 运行时库。

  • 使用 –xatomic=[studio|gcc|none] 选项可指定链接哪个原子支持库。

  • 使用 -library 选项可指定 Oracle Developer Studio C++ 编译器附带的以下库:

    libCrun
    libCstd
    libiostream
    libC
    libcomplex
    libstlportlibstlport_dbg
    libgc
    libsunperf
    libstdcxx(作为 Oracle Solaris OS 的一部分而分布)

如果库的静态版本可用,则将静态链接同时使用 –library–staticlib 选项指定的库。 以下为一些示例:

以下命令静态链接 libgc 库。

example% CC test.cc -library=gc -staticlib=gc

以下命令排除了库 libCrunlibCstd,否则缺省情况下这两个库包括在内。

example% CC test.cc -library=no%Crun,no%Cstd

缺省情况下,CC 根据命令行选项链接不同的系统库集合。如果指定 -xnolib(或 -nolib),CC 仅链接在命令行上使用 -l 选项显式指定的那些库。 (如果使用 -xnolib-nolib,会忽略 -library 选项(如果有)。)

使用 –R 选项可以在可执行文件中生成动态库搜索路径。 执行期间,运行时链接程序使用这些路径搜索应用程序所需的共享库。缺省情况下,如果编译器安装在标准位置,CC 驱动程序会将指向 <install-directory>/lib 的一个或多个 –R 选项传递给 ld。可以使用 -norunpath 禁止在可执行文件中生成共享库的缺省路径。

缺省情况下,链接程序会搜索 /lib/usr/lib。请勿在 -L 选项中指定这些目录或任何编译器安装目录。

对于针对部署生成的程序,应该使用 -norunpath-R 选项进行生成,这样可避免在编译器目录中查找库。请参见使用共享库