Makefile 搜索库文件
Makefile searching for a library file
在包含一些库的辅助 make 文件(名为 arch.make
)中,我写了
FFLAGS=-g -O2
FPPFLAGS= -DMPI -DFC_HAVE_FLUSH -DFC_HAVE_ABORT
LDFLAGS=-L/export/apps/computer/lapack-3.2
LAPACK_LIBS=-llapack_LINUX
LIBS=$(LAPACK_LIBS)
然后,Makefile 包含
siesta: check-siesta what version $(MPI_INTERFACE) $(FDF) $(WXML) $(XMLPARSER) \
$(COMP_LIBS) $(ALL_OBJS)
$(FC) -o siesta \
$(LDFLAGS) $(ALL_OBJS) $(FDF) $(WXML) $(XMLPARSER) $(MPI_INTERFACE)\
$(COMP_LIBS) $(FoX_LIBS) $(LIBS)
其他变量没问题。请注意在 arch.make
.
中定义的 $(LIBS)
和 $(LDFLAGS)
根据
,该库文件确实存在
root@cluster:ObjPar# ls /export/apps/computer/lapack-3.2/lapack_LINUX.a -l
-rw-r--r-- 1 root root 18296682 Jul 10 20:50 /export/apps/computer/lapack-3.2/lapack_LINUX.a
但是,make 进程退出并出现以下错误
......
dc_lapack.a `FoX/FoX-config --libs --wcml` -llapack_LINUX -lblas
/usr/bin/ld: cannot find -llapack_LINUX
collect2: ld returned 1 exit status
前面还有很多行,我省略了。
我该怎么办?
linker 没有找到名为 liblapack_LINUX.a
或 liblapack_LINUX.so
的文件。您需要直接使用
指向文件
LAPACK_LIBS=/export/apps/computer/lapack-3.2/lapack_LINUX.a
LDFLAGS
变量可能会被删除。
如果库未被称为 libblas.a
或 libblas.so
,您可能也必须以这种方式 link BLAS 库。 linking 的顺序也可能很重要。 LAPACK 之前的 BLAS。
在包含一些库的辅助 make 文件(名为 arch.make
)中,我写了
FFLAGS=-g -O2
FPPFLAGS= -DMPI -DFC_HAVE_FLUSH -DFC_HAVE_ABORT
LDFLAGS=-L/export/apps/computer/lapack-3.2
LAPACK_LIBS=-llapack_LINUX
LIBS=$(LAPACK_LIBS)
然后,Makefile 包含
siesta: check-siesta what version $(MPI_INTERFACE) $(FDF) $(WXML) $(XMLPARSER) \
$(COMP_LIBS) $(ALL_OBJS)
$(FC) -o siesta \
$(LDFLAGS) $(ALL_OBJS) $(FDF) $(WXML) $(XMLPARSER) $(MPI_INTERFACE)\
$(COMP_LIBS) $(FoX_LIBS) $(LIBS)
其他变量没问题。请注意在 arch.make
.
$(LIBS)
和 $(LDFLAGS)
根据
,该库文件确实存在root@cluster:ObjPar# ls /export/apps/computer/lapack-3.2/lapack_LINUX.a -l
-rw-r--r-- 1 root root 18296682 Jul 10 20:50 /export/apps/computer/lapack-3.2/lapack_LINUX.a
但是,make 进程退出并出现以下错误
......
dc_lapack.a `FoX/FoX-config --libs --wcml` -llapack_LINUX -lblas
/usr/bin/ld: cannot find -llapack_LINUX
collect2: ld returned 1 exit status
前面还有很多行,我省略了。
我该怎么办?
linker 没有找到名为 liblapack_LINUX.a
或 liblapack_LINUX.so
的文件。您需要直接使用
LAPACK_LIBS=/export/apps/computer/lapack-3.2/lapack_LINUX.a
LDFLAGS
变量可能会被删除。
如果库未被称为 libblas.a
或 libblas.so
,您可能也必须以这种方式 link BLAS 库。 linking 的顺序也可能很重要。 LAPACK 之前的 BLAS。