2014-12-23 3 views
1

다른 사람의 포트란 코드를 컴파일하고 정의되지 않은 참조 오류를 얻으려고합니다.'_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의 클러스터입니다)에서 다양한 사람들 라이브러리를 가지고 있지만, $에 대한 모든 가능한 다른 옵션은 CERN 나에게 비슷한 오류를 제공합니다.

답변

0

-lgfortran 또는 libgfortran.a에 대한 명시 적 경로를 추가하십시오. 정의되지 않은 기호가 있어야합니다. f77 다른 컴파일러인가요? 그것은 그것을 설명 할 것이다.

+0

응답 해 주셔서 감사합니다. f77은 gcc의 일부입니다. 합병증에'-lgfortran'을 넣었을 때'f77 : -lgfortran : 링커가 입력 파일을 연결하지 않았기 때문에 사용하지 않았습니다'를 얻게됩니다' makefile'FC = gfortran'을 변경하면 이전과 비슷한 오류가 발생합니다 : ' /usr/lib64/cernlib/2006/lib/libmathlib.a(gauss.o) : 함수'gauss_ '에서 : (.text + 0x2dd) : 정의되지 않은 참조'mtlprt_ '' – danchus

관련 문제