Oracle® Solaris Studio 12.4:Fortran 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

3.4.5 –B{static|dynamic}

首选动态库链接或要求静态库链接。

-Bdynamicstatic 之间不允许有空格。如果未指定 -B,则缺省值为 -Bdynamic

  • –Bdynamic:首选动态链接(尝试找到共享库)。

  • –Bstatic:需要静态链接(无共享库)。

另请注意:

  • 如果指定 static,但是链接程序仅找到动态库,则不链接该库,同时发出警告“未找到库”。

  • 如果指定 dynamic,但链接程序仅找到静态版本的库,则链接该库,并且不发出警告。

您可以在命令行上切换 -Bstatic-Bdynamic。也就是说,通过在命令行上指定 -Bstatic-Bdynamic 任意多次,可以静态链接一些库并动态链接一些库,如下所示:

f95 prog.f -Bdynamic -lwells -Bstatic -lsurface

这些是加载器和链接程序选项。在不同的步骤中使用编译命令的 -Bx 选项进行编译和链接时,将要求在链接步骤中也使用该选项。

不能在命令行上同时指定 -Bdynamic-dn,因为 -dn 禁用动态库的链接。

在 64 位 Solaris 环境中,许多系统库仅作为共享动态库提供,其中包括 libm.solibc.so(不提供 libm.alibc.a)。这意味着,在 64 位 Solaris 环境中,-Bstatic-dn 可能会导致链接错误。这些情况下应用程序必须与动态库链接。

不推荐同时使用静态 Fortran 运行时系统库和动态 Fortran 运行时系统库,因为这会导致链接程序错误或无提示的数据损坏。始终保持同最新的共享动态 Fortran 运行时系统库的链接。

有关静态库和动态库的更多信息,请参见《Fortran 编程指南》。