[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[netCDF #OCN-379575]: Error in compiling netcdf example code simple_xy-wr.cpp

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:


whereas the legacy netCDF-3 API is documented here:


Both APIs have an NcFile class, but different methods:


> 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


> /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

NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.