우분투 14.04에서 Fortran90으로 작성된 모델을 실행하고 싶습니다. gfortran 95 컴파일러 (gfortran 4 : 4.8.2-1ubuntu6)를 사용합니다. 필요한 netCDF 라이브러리 (netCDF C 및 Fortran netCDF)는 http://www.unidata.ucar.edu/software/netcdf/docs/에 제안 된대로 설치됩니다. netcdf는 공유 라이브러리로 빌드되므로 libnetcdf.so 및 libnetcff.so 파일이 라이브러리 디렉토리에 있습니다. libgfortran3 4.8.2-19ubuntu1은 공유 라이브러리에 링크 된 GNU Fortran 응용 프로그램 용으로 설치됩니다. LDFLAGS는 다음과 같은 방법으로 compiler_options.inc 파일에 설정됩니다gfortran_runtime_error에 대한 정의되지 않은 참조
INCDF=-I$(NCPATH)/include
LNCDF=-L$(NCPATH)/lib -lnetcdff -lnetcdf
LDFLAGS=$(INCDF) $(LNCDF)
내가 모델을 컴파일 할 때 나는 다음과 같은 메시지를 얻을 :
/home/Beata/kid_a_setup/src/test_cases_2d.f90:1446: undefined reference to `_gfortran_runtime_error_at
사람이 오류를 발생시키는 걸 설명 할 수 및 어떻게 고칠 수 있니?
정적 연결 옵션을'LDFLAGS = $ (INCDF) $ (LNCDF) -static-libgfortran'에 추가했습니다. gfortran_runtime_error를 해결했지만 다음 오류가 발생했습니다 :'In main main ': /home/Beata/kid_a_setup/src/KiD.f90:15 : __main에 대한 정의되지 않은 참조' '/ home/Beata/kid_a_setup/src/common_physics.f90 : 141 : ___ chkstk_ms''/home/Beata/kid_a_setup/src/diagnostics.f90:2311에 대한 정의되지 않은 참조 : __netcdf_MOD_nf90_strerror '에 대한 정의되지 않은 참조 및 netCDF 및 chkstk_ms와 관련된 더 많은 오류. 누군가가 나를 고칠 수있는 방법을 저에게 쓸 수 있습니까? – Beata
실행 파일을 링크하는 "make"명령의 출력을 보여주십시오. 올바른 라이브러리를 포함하지 않았거나 잘못된 순서로 라이브러리를 포함하고있는 것 같습니다. 당신이 게시 한 Makefile 조각들로부터, 그것은 말할 수 없다. –
'/ bin/sh : 1 : [[: 찾을 수 없음] gfortran -g -O0 -W -Wall -pedantic-errors -founds-check -fbacktrace -ffpe-trap = 유효하지 않은, 0, 오버플로 -frange-check -static -libgfortran -o ../bin/KiD_SC_2D.exe ../obj/*.o -I/home/beata/netcdf // -L/home/beata/netcdf를 포함합니다. // lib -lnetcdff -lnetcdf ../ obj/KiD.o : 함수 main에서 : /home/Beata/kid_a_setup/src/KiD.f90:15 : 정의되지 않은 참조 __main'' – Beata