`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
.
我对特定的 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
.