This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Hi Abir, > I have installed NetCDF C++ package on linux and I am using Netbeans > IDE to write my own codes. I have added the /usr/local/include and > usr/local/lib to the C++ compiler and the linker respectively in the > project properties. When I am trying to compile the simple_xy_wr.cpp > file, I am receiving the error "Undefined reference to NcFile" at anyline > which uses this class or any of it's member functions. I tried to search > this on the net but everyone said that I may be giving the wrong directory > to the linker, but i have specifically added the lib directory in the > project properties. I am unable to resolve this issue and kindly reply > as soon as possible. There are two different C++ libraries for netCDF, and the newer netCDF-4 API differs in incompatible ways from the older "legacy" C++ API for netCDF-3. I suspect you are using the new netCDF-4 C++ API with the documentation and examples for the legacy netCDF-3 C++ API. Documentation for the new netCDF-4 C++ API is here: http://www.unidata.ucar.edu/netcdf/docs/cxx4/ whereas the legacy netCDF-3 API is documented here: http://www.unidata.ucar.edu/netcdf/docs/netcdf-cxx/ Both APIs have an NcFile class, but different methods: http://www.unidata.ucar.edu/netcdf/docs/netcdf-cxx.html#Class-NcFile http://www.unidata.ucar.edu/netcdf/docs/cxx4/classnetCDF_1_1NcFile.html > Also, I would be glad if you could give me clear instructions for > installing the NetCDF C++ package on linux with and without the NetCDF-4 > support. Please reply soon. I copied the compile log for your review > below. As far as building the legacy C++ library for netCDF-3, this worked for me, after installing the netCDF-4 C library under /usr/local: LD_LIBRARY_PATH=/usr/local/lib CPPFLAGS="-I/usr/local/include -DUSE_NETCDF4" ./configure --enable-netcdf-4 make check sudo make install --Russ > /usr/bin/gmake -f nbproject/Makefile-Debug.mk SUBPROJECTS= .build-conf > gmake[1]: Entering directory `/home/local/test_Cpp' > /usr/bin/gmake -f nbproject/Makefile-Debug.mk > dist/Debug/GNU-Linux-x86/test_cpp > gmake[2]: Entering directory `/home/local/test_Cpp' > mkdir -p build/Debug/GNU-Linux-x86 > rm -f build/Debug/GNU-Linux-x86/main.o.d > g++ -c -g -I../local/include -MMD -MP -MF > build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o > main.cpp > mkdir -p dist/Debug/GNU-Linux-x86 > g++ -o dist/Debug/GNU-Linux-x86/test_cpp build/Debug/GNU-Linux-x86/main.o > -L../local/lib -Wl,-rpath /home/local > build/Debug/GNU-Linux-x86/main.o: In function `main': > /home/local/test_Cpp/main.cpp:46: undefined reference to `NcFile::NcFile(char > const*, NcFile::FileMode, unsigned long*, unsigned long, NcFile::FileFormat)' > /home/local/test_Cpp/main.cpp:50: undefined reference to `NcFile::is_valid() > const' > /home/local/test_Cpp/main.cpp:63: undefined reference to > `NcFile::add_dim(char const*, long)' > /home/local/test_Cpp/main.cpp:64: undefined reference to > `NcFile::add_dim(char const*, long)' > /home/local/test_Cpp/main.cpp:68: undefined reference to > `NcFile::add_var(char const*, NcType, NcDim const*, NcDim const*, NcDim > const*, NcDim const*, NcDim const*)' > /home/local/test_Cpp/main.cpp:73: undefined reference to `NcVar::put(int > const*, long, long, long, long, long)' > /home/local/test_Cpp/main.cpp:80: undefined reference to `NcFile::~NcFile()' > /home/local/test_Cpp/main.cpp:80: undefined reference to `NcFile::~NcFile()' > collect2: ld returned 1 exit status > gmake[2]: *** [dist/Debug/GNU-Linux-x86/test_cpp] Error 1 > gmake[2]: Leaving directory > `/home/MTS-AERO_Work-15/Aero_Design-15/Internship/TAU_Interpolation/test_Cpp' > gmake[1]: *** [.build-conf] Error 2 > gmake[1]: Leaving directory > `/home/MTS-AERO_Work-15/Aero_Design-15/Internship/TAU_Interpolation/test_Cpp' > gmake: *** [.build-impl] Error 2 > The information in this e-mail is confidential. The contents may not be > disclosed or used by anyone other than the addressee. Access to this e-mail > by anyone else is unauthorised. > If you are not the intended recipient, please notify Airbus immediately and > delete this e-mail. > Airbus cannot accept any responsibility for the accuracy or completeness of > this e-mail as it has been sent over public networks. If you have any > concerns over the content of this message or its Accuracy or Integrity, > please contact Airbus immediately. > All outgoing e-mails from Airbus are checked using regularly updated virus > scanning software but you should take whatever measures you deem to be > appropriate to ensure that this message and any attachments are virus free. > > Russ Rew UCAR Unidata Program address@hidden http://www.unidata.ucar.edu Ticket Details =================== Ticket ID: OCN-379575 Department: Support netCDF Priority: Normal Status: Closed