2013-12-20 4 views
0

NetCDF 라이브러리를 사용하는 f90 프로그램을 작성하려고합니다. 객체의 편집이 잘됩니다. 나는 매우 숙련 된 프로그래머가 아니지만, 내가이에서 얻을 것은 분명히이 _H5Aclose 같은 물건을 찾을 수 있다는 것입니다NetCDF 코드를 포함한 f90 연결

gfortran-mp-4.7 -g -O2 -Wall -o myProg myObj1.o myObj2.o /opt/local/lib/libnetcdff.a /opt/local/lib/libnetcdf.a 

Undefined symbols for architecture x86_64: 
    "_H5Aclose", referenced from: 
     _nc4_rec_read_vars in libnetcdf.a(libnetcdf4_la-nc4file.o) 
     _nc4_rec_read_vars_cb in libnetcdf.a(libnetcdf4_la-nc4file.o) 
     _nc4_rec_write_metadata in libnetcdf.a(libnetcdf4_la-nc4hdf.o) 
     _write_attlist in libnetcdf.a(libnetcdf4_la-nc4hdf.o) 
     _nc4_rec_write_types in libnetcdf.a(libnetcdf4_la-nc4hdf.o) 
     _write_netcdf4_dimid in libnetcdf.a(libnetcdf4_la-nc4hdf.o) 
. 
. [Similar paragraphs] 
. 
    "_curl_easy_strerror", referenced from: 
     _ocfetchurl_file in libnetcdf.a(liboc_la-ochttp.o) 
     _ocfetchurl in libnetcdf.a(liboc_la-ochttp.o) 
     _ocfetchlastmodified in libnetcdf.a(liboc_la-ochttp.o) 
     _ocping in libnetcdf.a(liboc_la-ochttp.o) 
    "_curl_version_info", referenced from: 
     _oc_curl_protocols in libnetcdf.a(liboc_la-occurlfunctions.o) 
ld: symbol(s) not found for architecture x86_64 
collect2: error: ld returned 1 exit status 

:하지만 netCDF의 라이브러리와 연결하는 연결 단계에서, 문제가있다. Google은 hdf5 라이브러리에 속한다고 알려줍니다. 그러나 나는이 문제를 갖고있는 것 같다 :

pwd:/opt/local/include >> ls | grep hdf 
hdf5.h 
hdf5_hl.h 

(이것은 메이크 파일에 지정되지 않았더라도)

gfortran-mp-4.7 -g -O2 -Wall -o myProg myObj1.o myObj2.o -L/opt/local/include -L/opt/local/lib /opt/local/lib/libnetcdff.a /opt/local/lib/libnetcdf.a 

gfortran-mp-4.7 -g -O2 -Wall -o myProg myObj1.o myObj2.o -I/opt/local/include -I/opt/local/lib /opt/local/lib/libnetcdff.a /opt/local/lib/libnetcdf.a 

하지만이 같은 오류 메시지가 나는 또한 링커에 명시 적으로 이러한 경로를 추가하려고했습니다 . 나는 Mac OS 10.8을 사용하고 있으며 gport (gfortran과 함께 제공)와 macports의 netcdf-fortran을 모두 설치했습니다. 아무도 무엇이 잘못 되었는가, 아니면 어떻게 알아 내야합니까?

+0

당신은 당신의 HDD 어딘가에 hdf5.mod를 가지고 있습니까? –

+0

아니요,/usr,/opt 또는/Applications/Xcode가 아니기 때문에 제가 가지고 있다고 생각하지 않습니다. – Patrick

+0

'hdf5.mod' 파일을 가지고 있어야한다고 생각 하겠지만 사용하지 않습니다. NetCDF 그래서 나는 대답 할 수있는 가장 자격있는 사람이 아니야. –

답변

2

NetCDF4 및 HDF5는 모두 도우미 응용 프로그램

  • NF-설정 함께
  • NC-설정
  • h5fc
  • h5cc

이가 설치나요? 나는 당신의 경우에 기본적으로 그것들을 사용할 것입니다 :

gfortran-mp-4.7 -g -O2 -Wall -o myProg myObj1.o myObj2.o `nf-config --fflags --flibs` 
+0

그것은 그렇게 간단했습니다! – Patrick