首选动态库链接或要求静态库链接。
在 -B 与 dynamic 或 static 之间不允许有空格。如果未指定 -B,则缺省值为 -Bdynamic。
另请注意:
如果指定 static,但是链接程序仅找到动态库,则不链接该库,同时发出警告“未找到库”。
如果指定 dynamic,但链接程序仅找到静态版本的库,则链接该库,并且不发出警告。
您可以在命令行上切换 -Bstatic 和 -Bdynamic。也就是说,通过在命令行上指定 -Bstatic 和 -Bdynamic 任意多次,可以静态链接一些库并动态链接一些库,如下所示:
f95 prog.f -Bdynamic -lwells -Bstatic -lsurface |
这些是加载器和链接程序选项。在不同的步骤中使用编译命令的 -Bx 选项进行编译和链接时,将要求在链接步骤中也使用该选项。
不能在命令行上同时指定 -Bdynamic 和 -dn,因为 -dn 禁用动态库的链接。
在 64 位 Solaris 环境中,许多系统库仅作为共享动态库提供,其中包括 libm.so 和 libc.so(不提供 libm.a 和 libc.a)。这意味着,在 64 位 Solaris 环境中,-Bstatic 和 -dn 可能会导致链接错误。这些情况下应用程序必须与动态库链接。
不推荐同时使用静态 Fortran 运行时系统库和动态 Fortran 运行时系统库,因为这会导致链接程序错误或无提示的数据损坏。始终保持同最新的共享动态 Fortran 运行时系统库的链接。
有关静态库和动态库的更多信息,请参见《Fortran 编程指南》。