找出程序中所使用的 NAG 函数

本文件说明如何使用标准的 Unix 工具,列出运行文件中所参考到的 NAG Fortran 或 NAG 多核算法库的函数。 尤其是在静态链接的运行文件中。虽然本例是以 NAG Fortran 当作说明,但是可以利用此相同方法在其他的 NAG 算法库。

工具

1. nm

标准的 Unix 工具 nm,将会详细列出运行文件或目的档所参考到的所有符号。

2. grep

接下来需要一个工具在 nm 输出中,找出所有 NAG 算法库的函数名。grep 可以透过样板找出这些函数。

所有 NAG Fortran 算法库的函数是以下面的形式命名的:

Letter (0, 1 or 2) Number Letter Letter F
透过 grep,可以使用正规表示式:
[A-Z][0-2][0-9][A-Z][A-Z]F
请注意,若 NAG 函数使用到 BLAS 函数,NAG 函数同样也会在符号表中。

Unix 命令

如果运行文件是 a.out,透过 Unix 的命令可以找出其中所使用的 NAG 函数:
    nm a.out | grep -i '[a-z][0-2][0-9][a-z][a-z]f'
参数 -i 将会告诉 grep 命令,在它的正规表示式中忽略大小写。

以上是在 Sun Solaris 环境上所测试的结果,但是大部分的 Unix 系统都有类似的功能,并会有类似如下的输出:

    [108] | 68480| 32|FUNC |GLOB |0 |8 |f06jlf_
显示在程序中调用了 NAG F06JLF 函数。