【发布时间】:2013-11-29 10:59:37
【问题描述】:
我正在尝试构建一个非常简单的 Makefile,它打算使用由 Fortran 模块制成的自制库 (libf904QC.a)。该库位于/usr/local/lib64,而相应的.mod 文件位于/usr/local/include/f904QC
这是 Makefile
# Makefile
NAME=NPManip
FFLAGS= -ffpe-trap=overflow -c -O3
LFLAGS=
PATH2LIB=/usr/local/lib64/
INCLUDEDIR=/usr/local/include/f904QC/
#
LIB=-L$(PATH2LIB) -I$(INCLUDEDIR) -lf904QC.a
OBJS = \
tools_NPManip.o\
NPManip.o
%.o: %.f90
gfortran $(LIB) $(FFLAGS) $*.f90
NPM: $(OBJS)
gfortran $(LFLAGS) $(OBJS) $(LIB) -o $(NAME)
clean:
@if test -e $$HOME/bin/$(NAME); then \
rm $$HOME/bin/$(NAME); \
fi
rm *.o *.mod
mrproper: clean
rm $(NAME)
install:
ln -s $(shell pwd)/$(NAME) $$HOME/bin/.
我收到以下错误消息:
gfortran tools_NPManip.o NPManip.o -L/usr/local/lib64/ -I/usr/local/include/f904QC/ -lf904QC.a -o NPManip
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: 找不到-lf904QC.a
collect2: 错误:ld 返回 1 个退出状态
make: * [NPM] Erreur 1
错在哪里?这对我来说并不明显,因为libf904QC.o 实际上位于/usr/local/lib64,这是由-L 选项定义的。
感谢您的帮助
【问题讨论】:
-
您是在尝试链接对象
libf904QC.o还是归档libf904QC.a?尝试将-lf904QC.a替换为目标文件的完整路径。
标签: module makefile fortran libraries