Sun Studio 12:Fortran 编程指南

4.5.3.3 64 位环境中的绑定

某些静态系统库(如 libm.alibc.a)不能在 64 位 Solaris 操作环境中使用。这些库只作为动态库提供。在这些环境中使用 -dn 将会导致错误,指示缺少某些静态系统库。另外,如果编译器命令行以 -Bstatic 结尾,其结果将是一样的。

要与特定库的静态版本进行链接,请使用类似下面的命令行:

f95 -o prog prog.f -Bstatic -labc -lxyz -Bdynamic

在此,链接的是用户的 libabc.alibxyz.a 文件(而不是 libabc.solibxyz.so),最后的 -Bdynamic 确保以动态方式链接包括系统库在内的其余各库。

在更复杂的情况下,可能必须在链接阶段根据需要用相应的 -Bstatic-Bdynamic 显式引用每个系统库和用户库。首先使用设置为 ’-Dfiles’LD_OPTIONS 获取全部所需库的列表。然后用 -nolib 执行链接步骤(禁止自动链接系统库)并显式引用所需的库。例如:

f95 -m64 -o cdf -nolib cdf.o -Bstatic -lsunmath \ -Bdynamic -lm -lc