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.
>To: address@hidden >From: Nikolopoulos Lambros <address@hidden> >Subject: porting problems of netcdf-3 >Organization: UCAR/Unidata >Keywords: 200102221834.f1MIYVL23846 Hi Lambros, > I have been using netCDF for formation of my data the last 3 > years and ported the library in varius machines as, > IBM RS6000/AIX, IBM SP2/AIX, Linux RedHat, ... > > Recently, I downloaded the new version and ported it in > a CRAY T3E/1200 vendor-CC (CINECA Bologna, Italy), > pc, RedHat 7.0/g++ without any problems. > Trying to compile in IBM SP3 machines, however a problem > were encountered. > When i tried 'make' ('the ./configure worked) the compiler > refuses the declaration 'friend' in cxx/netcdf.cc file. > Any idea ? > The result of 'uname -a' > sp> uname -a > AIX sp101 3 4 000506604C00 > The content of VERSION > sp> more VERSION > 3.4 > sp> which xlC > /usr/bin/xlC > > and as attachment file i send the redirection of > > sp>./configure > configure.log > ps> make >& make.log > as well as the config.log file. Yes, there was a non-standard use of the "friend" qualifier in the C++ code (it tried to declare a constructor a friend, but friend can only be used with a Class's methods and a constructor is not really a method). We fixed the problem in netcdf-3.5beta8, which you could try. Just get it from ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-3.5-beta8.tar.Z Or if you just want to fix the code in version 3.4, you can use the appended patch to netcdf.hh, which is now named netcdfcpp.h --Russ netcdf-3/src/cxx$ cvs diff -r1.1 netcdfcpp.h Index: netcdfcpp.h =================================================================== RCS file: /upc/share/CVS/netcdf-3/cxx/netcdfcpp.h,v retrieving revision 1.1 retrieving revision 1.5 diff -r1.1 -r1.5 7c7 < * $Header: /upc/share/CVS/netcdf-3/cxx/netcdfcpp.h,v 1.1 1998/10/28 17:10:21 russ Exp $ --- > * $Header: /upc/share/CVS/netcdf-3/cxx/netcdfcpp.h,v 1.5 2001/02/05 > 20:29:12 russ Exp $ 113a114 > FillMode the_fill_mode; 156,161c157 < friend NcFile::NcFile( const char *, NcFile::FileMode, size_t* = NULL, < size_t = 0 ); < friend NcBool NcFile::sync( void ); < friend NcDim* NcFile::add_dim( NcToken, long ); < // to delete dimensions, since destructor is private < friend NcBool NcFile::close( void ); --- > friend NcFile; 364,374c360 < friend NcFile::NcFile( const char *, NcFile::FileMode, < size_t* = NULL, size_t = 0); < friend NcBool NcFile::sync( void ); < friend NcVar* NcFile::add_var( NcToken varname, NcType type, < const NcDim*, < const NcDim*, < const NcDim*, < const NcDim*, < const NcDim*); < friend NcVar* NcFile::add_var( NcToken, NcType, int, < const NcDim** ); --- > friend NcFile; 405,406c391 < friend NcFile::NcFile( const char *, NcFile::FileMode, < size_t* = NULL, size_t = 0); --- > friend NcFile;