在 Fortran Make 文件中添加 LAPACK 库

Adding LAPACK libraries in Fortran Make file

我正在用 Fortran90 编写代码。我需要使用 LAPACK 库中的 dgesv 函数。我有几个子例程,我正在使用 make file 使用 gfortran 编译它们。我可以 link 使用 gfortran 的 Lapack 库

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

谁能帮助我将这些库添加到我的 make 文件中?我的 make 文件如下:

.SUFFIXES:
.SUFFIXES: .f .o .f90
#
LIBDIR = lib
UNAME := $(shell uname)

DEFINE = 
FCOMP  = gfortran
FOPTS  = -fdefault-real-8 -g -fbounds-check -fbacktrace -O2 -Wline-truncation
F90OPTS = -ffree-form -ffree-line-length-none
#FOPTS = -fPIC -g

OBJS =  read_model_2d_elasto.o output_2d_elasto.o 2d_elastostatics_FEM.o stiffness_2d_elasto.o stress_strain_2d_elasto.o \

XLIBS  = -L/usr/X11R6/lib64 -lX11 -lpthread 
GLIBS  = -L/usr/X11R6/lib64 -lGLU -lGL -lX11 -lXext -lpthread

#default:   2d_elastostatics_FEM techop
all: 2d_elastostatics_FEM 

ifeq ($(UNAME),Darwin)
  2d_elastostatics_FEM:$(OBJS)
    $(FCOMP)  -g $(OBJS) -o 2d_elastostatics_FEM 
else
  2d_elastostatics_FEM:$(OBJS)
    $(FCOMP)  -g -static $(OBJS) -o 2d_elastostatics_FEM
endif

.f.o:; $(FCOMP) -c -o $@ $(FOPTS) $*.f
.f90.o:; $(FCOMP) -c -o $@ $(FOPTS) $(F90OPTS) $*.f90

clean:

    -rm -f 2d_elastostatics_FEM $(OBJS) *.mod *.x *.exe

在 Makefile 中使用您用于 XLIBS 和 GLIBS 的 sme 方式

BLIBS = -L/path/to/libs -llapack -lblas

...

ifeq ($(UNAME),Darwin)
  2d_elastostatics_FEM:$(OBJS)
    $(FCOMP)  -g $(OBJS) -o 2d_elastostatics_FEM $(BLIBS)
else
  2d_elastostatics_FEM:$(OBJS)
    $(FCOMP)  -g -static $(OBJS) -o 2d_elastostatics_FEM $(BLIBS)
endif