MinGW gfortran LAPACK dgsev

MinGW gfortran LAPACK dgsev

我想在我的 Fortran 代码中使用 LAPACK 库。我正在使用 gfortran 进行编译,并希望从 lapack 库中调用 dgesv 函数。

我下载了 lapack3.5.0 并使用 Cmake 构建了它并对其进行了测试。 lapack3.5.0 的构建创建了以下库:libblas.a、liblapack.a、libtmglib.a

我正在使用 make 文件使用 gfortran 编译我的代码。

如何将这些库与 gfortran 编译器一起使用,我在编译时收到 dgsev 未定义的错误。我已经将这些库的路径添加到系统路径中。

我不知道如何在 gfortran 中使用外部库。

您必须使用 gfortran 链接器的 -L 选项。使用它,您将指向编译器在此路径中查找库。

例如:

gfortran test.f -L/path/to/libs -llapack -lblas

如果你有额外的库,你可以这样设置

LLIBS  = -L/path/to/libs -llapack -lblas
XLIBS  = -L/usr/X11R6/lib64 -lX11 -lpthread 
GLIBS  = -L/usr/X11R6/lib64 -lGLU -lGL -lX11 -lXext -lpthread
OBJS   = test.o
gfortran $(OBJS) $(LLIBS) $(XLIBS) $(GLIBS)

无需在系统路径中添加任何内容。