`ld: 在使用 MINUIT 库代码编译 Fortran 时找不到 -libminuit`

`ld: cannot find -libminuit` when compiling Fortran with code the MINUIT library

我对特定的 F77 库有疑问。它的名字是 libminuit。可以从 -> https://github.com/ramos/minuit/downloads 下载它。它提供了将理论模型拟合到实验数据的方法。

下载包括 F77 源代码(许多文件)和一个 makefile。 makefile 用于生成库。

我用 f95 代码写了一个卡方函数,想用 minuit 库做最小化。

这对我来说是第一次使用 Fortran。我首先使用 F77 编译器生成库,然后使用 F95 编译器生成库。

在这两种情况下都找不到库。

从生成库到编译链接的整个过程是:

$ gfortran -c *.F
$ ar rcs libminuit.a *.o
$ cp libminuit.a /home/kai/TEST/f95/lib/libminuit.a
$ rm *o *a
$ nano testM.f90
$ gfortran testM.f90 -L/home/kai/TEST/f95/lib -libminuit
/usr/bin/ld: cannot find -libminuit
collect2: error: ld returned 1 exit status
$ cat testM.f90

测试来源:

PROGRAM TESTM
call minuit(5,6,7)
END PROGRAM TESTM

链接到名为 libfoo.a 的库时,您需要将标志 -lfoo 传递给编译器,而不是 -llibfoo。所以在你的情况下你应该使用 -lminuit,而不是 -libminuit.