2014-12-23 84 views
1

我試圖編譯別人的fortran代碼並獲取未定義的引用錯誤。特別是,我得到的錯誤是這樣的:未定義的引用`_gfortran_transfer_character'

/usr/lib64/cernlib/2006/lib/libpdflib804.a(structm.o): In function `structm_': 
(.text+0x17712): undefined reference to `_gfortran_transfer_integer' 

我的猜測是,我無法正常連接libpdflib804.a,但我不知道我做錯了。下面是生成文件:

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給我類似的錯誤。

回答

0

嘗試添加-lgfortran或顯式路徑爲libgfortran.a。未定義的符號應該在那裏。是f77其他一些編譯器?這將解釋它。

+0

感謝您的回覆。 f77是gcc的一部分。當我把'-lgfortran'放在併發症中時,我得到 'f77:-lgfortran:鏈接器輸入文件未使用,因爲鏈接沒有完成' 當我更改生成文件'FC = gfortran'時,我得到類似的錯誤: ' /usr/lib64/cernlib/2006/lib/libmathlib.a(gauss.o):在函數'gauss_'中: (.text + 0x2dd):未定義的對'mtlprt_'的引用 – danchus