gpt4 book ai didi

linux - 使用 gfortran 在 makefile 中进行库链接

转载 作者:太空狗 更新时间:2023-10-29 11:19:28 26 4
gpt4 key购买 nike

我有一个 Fortran 代码 (pardiso_1.f),它需要一些库(BLAS、lapack 和 Pardiso 库)进行编译。当我尝试编译它时,我在编译之前链接库,然后在 linux 终端中写下这一行:

gfortran pardiso_1.f  -L/home/behnam/Pardiso -lpardiso412-GNU450-X86-64 -L/usr/lib -lblas -llapack -fopenmp

而且效果很好。

但是我必须使用 makefile 运行代码。我是编写 makefile 的新手,我不知道如何进行链接。我写了这个makefile。谁能帮我找出问题所在?

FC = gfortran
OPT = -O2
PROGRAMS = pardiso_1

all: $(PROGRAMS)
FFLAGS = -fopenmp

#### BLAS, LAPACK and PTHREAD libraries
LBLAS = /usr/lib/

###location of pardiso file
LIBMKL = /home/behnam/PS2/

#### Series of libraries
LIBRARIES= -llapack -lblas -lpthread -lm -lpardiso412-GNU430-X86-64

PATHFC = /usr/bin/

nlace: ${PATHFC}${FC} ${OPT} ${FFLAGS} -I${PROGRAMS} -o nlace.exe \
-L${LIBMKL} -lpardiso412-GNU430-X86-64\
-L${LBLAS} ${LIBRARIES}


clean:
rm -f *.o *.exe fort.* *~ *.mod

veryclean: clean
rm -f *~ $(PROGRAMS)

错误是:

behnam@meen-392430:~/testing$ make
make: Warning: File `Makefile' has modification time 23 s in the future
gfortran -fopenmp pardiso_1.f -o pardiso_1
/tmp/ccYNexaH.o: In function `MAIN__':
pardiso_1.f:(.text+0xb3): undefined reference to `pardisoinit_'
pardiso_1.f:(.text+0x2ae): undefined reference to `pardiso_chkmatrix_'
pardiso_1.f:(.text+0x36e): undefined reference to `pardiso_chkvec_'
pardiso_1.f:(.text+0x44c): undefined reference to `pardiso_printstats_'
pardiso_1.f:(.text+0x5ae): undefined reference to `pardiso_'
pardiso_1.f:(.text+0x860): undefined reference to `pardiso_'
pardiso_1.f:(.text+0xb78): undefined reference to `pardiso_'
pardiso_1.f:(.text+0xe00): undefined reference to `pardiso_'
collect2: ld returned 1 exit status
make: *** [pardiso_1] Error 1

最佳答案

您的 makefile 不包含命令行的 -L/home/behnam/Pardiso 部分。

关于linux - 使用 gfortran 在 makefile 中进行库链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19526147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com