我正在尝试编译其他人的fortran代码并获取未定义的引用错误。特别是,我得到这样的错误:
/usr/lib64/cernlib/2006/lib/libpdflib804.a(structm.o): In function `structm_':
(.text+0x17712): undefined reference to `_gfortran_transfer_integer'
我的猜测是我没有正确连接libpdflib804.a,但我不知道我做错了什么。这是makefile:
OBJS = hpair.o Cteq61Pdf.o mrst2001.o
LIBS = $(CERN)/libpdflib804.a $(CERN)/libpawlib.a $(CERN)/libgrafX11.a $(CERN)/libpacklib.a $(CERN)/libmathlib.a $(CERN)/libkernlib.a
FC=f77
.f.o:
$(FC) -c $(FFLAGS) $*.f
hpair: $(OBJS)
$(FC) $(FFLAGS) $(OBJS) $(LIBS) -o run
clean:
rm -f $(OBJS)
我的系统在不同的位置有各种各样的库(它是CERN的集群),但是$ CERN的所有可能的不同选项给了我类似的错误。
答案 0 :(得分:0)
尝试添加-lgfortran
或libgfortran.a
的显式路径。未定义的符号应该在那里。 f77
是否有其他编译器?这可以解释它。