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.
> Thank-you Russ. Your suggestion to use libnetcdf_c++ works. > > I wish that I could use the newer netCDF C++ library (version 4.2?). > But my government manager and another programmer here are seriously > afraid that doing that will break that other programmer's code. So I'm > stuck with the older version. I had enough trouble getting the manager > to allow me to use C++! You can actually install both the old and new C++ libraries in the same directory without any name conflicts. But using a different API than your coworkers might interfere with collaborations :-). > By the way, what are the ".la" files in the "lib" directory? The .la file is used by libtool. Here's a better explanation than I could provide: http://stackoverflow.com/questions/1238035/what-is-libtools-la-file-for --Russ > On 6/2/2014 12:28 PM, Unidata netCDF Support wrote: > > Hi Bill, > > > >> //I'm having trouble linking my C++ test program with the //netCDF C++ > >> version 4.1.3 library. I do not have the option of using version 4.2. > >> The program compiles cleanly. Here's the source:/ > >> > >> #include <iostream> > >> #include <string> > >> > >> #include "/mgt/dev/apps/common/netcdf4/include/netcdfcpp.h" > >> > >> int main ( int argc , const char ** argv ) > >> > >> { > >> > >> std::cout << "\nPlease enter the name of the netCDF file " > >> << "that you want me to *try* to read." > >> << std::endl; > >> std::cout << ':'; > >> > >> std::string filename; > >> std::cin >> filename; > >> > >> std::cout << "\nThe filename you entered is:\n\"" > >> << filename > >> << "\".\n" > >> << std::endl; > >> > >> NcFile testfile ( filename.c_str () ); > >> > >> if (testfile.is_valid () == 0) > >> { > >> std::cout << "Version 4.1.3 of the netCDF C++ library " > >> << "cannot handle this file.\n" > >> << std::endl; > >> return 0; > >> } > >> > >> return 0; > >> > >> } > >> > >> /Here's what I get when I t//ry to build:/ > >> > >> [Pprecip@MGTdev netcdf413]$ g++ -o main main.C > >> -L/mgt/dev/apps/common/netcdf4/lib/ -lnetcdf_c++4 > > The problem is using the wrong library. Your program calls the > > netCDF C++ "legacy" library API, but you are trying to link with > > a non-compatible newer version of the netCDF-4 C++ library. If > > you built successfully from netcdf-4.1.3, you should have > > installed libnetcdf_c++ files in the lib/ directory your linking > > with, in which case you can just use "-lnetcdf_c++" instead of > > "-lnetcdf_c++4" for linking your program. > > > > In case you want to use it, the newer netcdf-4 C++ library is > > available and explained in the Readme documentation appearing > > at the bottom of this web page: > > > > https://github.com/Unidata/netcdf-cxx4 > > > > but it's not upward compatible with the legacy API. > > > > --Russ > > > >> /tmp/ccwzCfrW.o: In function `main': > >> main.C:(.text+0x127): undefined reference to `NcFile::NcFile(char > >> const*, NcFile::FileMode, unsigned long*, unsigned long, > >> NcFile::FileFormat)' > >> main.C:(.text+0x130): undefined reference to `NcFile::is_valid() const' > >> main.C:(.text+0x185): undefined reference to `NcFile::~NcFile()' > >> main.C:(.text+0x194): undefined reference to `NcFile::~NcFile()' > >> collect2: ld returned 1 exit status > >> [Pprecip@MGTdev netcdf413]$ > >> > >> /What am I doing wrong? ....or what am I not doing that I should be > >> doing? I and two co-workers are s//tumped.// > >> // > >> //Thank-you in advance for your help.// > >> //Bill./ > >> > >> -- > >> William (Bill) Mattison > >> NCWCP, cubicle 3693. > >> 301-683-3272. > >> > >> > >> > > Russ Rew UCAR Unidata Program > > address@hidden http://www.unidata.ucar.edu > > > > > > > > Ticket Details > > =================== > > Ticket ID: UHO-898473 > > Department: Support netCDF > > Priority: Normal > > Status: Closed > > > > -- > William (Bill) Mattison > NCWCP, cubicle 3693. > 301-683-3272. > > > Russ Rew UCAR Unidata Program address@hidden http://www.unidata.ucar.edu Ticket Details =================== Ticket ID: UHO-898473 Department: Support netCDF Priority: Normal Status: Closed