[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netCDF #UHO-898473]: question: linking with netCDF C++ 4.1.3.
- Subject: [netCDF #UHO-898473]: question: linking with netCDF C++ 4.1.3.
- Date: Mon, 02 Jun 2014 10:28:22 -0600
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