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.
Greg, We have a slightly newer compiler than you: $ CC -version MIPSpro Compilers: Version 7.3.1.1m We're sorry we can't duplicate the problem, but the netCDF C++ interface works on every other platform we've tried. Maybe when we announce 3.5 for beta testing, someone else will send in a workaround for this problem. It might be useful to know "uname -a" and "uname -R" info from your system. -- Stuart Wier UCAR Unidata Program Center address@hidden P.O. Box 3000 (303) 497-8659 Boulder, CO 80307 Unidata Home Page http://www.unidata.ucar.edu/ Gregory Roland Ruetsch wrote: > > Stuart, > > Thanks for your help in looking into this. It seems that we must be > running on different version of the SGI compiler. I can also get the > following to run: > > > // really_simple_nstd.cpp succeeds on SGI with command > > // CC -o test -I/upc/netcdf/include really_simple_nstd.cpp > > #include <iostream.h> > > #include <string.h> > > #include "netcdfcpp.h" > > > > int main() { > > cerr << "This has gotta work; 3, simple cerr." << endl; > > return 0; > > } > > but ... > > > // various forms make compiler errors or warnings: really_simple.cpp > > // command CC -LANG:std -o test really_simple.cpp > > #include <string> > > #include <iostream> > > using namespace std; > > > > int main() { > > cerr << "This has gotta work, simple cerr." << endl; > > // string str(" string output: This has gotta work, too."); > > // cerr << str << endl; > > return 0; > > } > > > > > > As shown it compiles, with ("fatal"?) warnings, and runs. > > With the one line "string str..." uncommented it fails to compile. > > ... this isn't what happens to me: > > thayer 95% CC -version > MIPSpro Compilers: Version 7.30 > thayer 96% more rs.cc > // various forms make compiler errors or warnings: really_simple.cpp > // command CC -LANG:std -o test really_simple.cpp > #include <string> > #include <iostream> > using namespace std; > > int main() { > cerr << "This has gotta work, simple cerr." << endl; > string str(" string output: This has gotta work, too."); > cerr << str << endl; > return 0; > } > > thayer 97% CC -LANG:std rs.cc > > --- C++ prelinker: rs.o --- > CC -c -DEFAULT:abi=n32:isa=mips4:proc=r10k -LANG:std -n32 rs.cc > > --- C++ prelinker: rs.o --- > CC -DEFAULT:abi=n32:isa=mips4:proc=r10k -c > -DEFAULT:abi=n32:isa=mips4:proc=r10k -LANG:std -n32 rs.cc > thayer 98% a.out > This has gotta work, simple cerr. > string output: This has gotta work, too. > > Now, adding the "netcdfcpp.h" file: > > thayer 99% xemacs rs.cc > thayer 100% more rs.cc > // various forms make compiler errors or warnings: really_simple.cpp > // command CC -LANG:std -o test really_simple.cpp > #include <string> > #include <iostream> > using namespace std; > > #include "netcdfcpp.h" > > int main() { > cerr << "This has gotta work, simple cerr." << endl; > string str(" string output: This has gotta work, too."); > cerr << str << endl; > return 0; > } > > ... > > thayer 103% CC -LANG:std -I/usr/people/ruetsch/include rs.cc |& more > cc-1239 CC: ERROR File = /usr/include/CC/iostream.h, Line = 91 > "streambuf" is ambiguous. > > ios(streambuf*) ; > ^ > > cc-1239 CC: ERROR File = /usr/include/CC/iostream.h, Line = 107 > "ostream" is ambiguous. > > ostream* tie(ostream* s); > ^ > > cc-1239 CC: ERROR File = /usr/include/CC/iostream.h, Line = 107 > "ostream" is ambiguous. > > ostream* tie(ostream* s); > ^ > > cc-1239 CC: ERROR File = /usr/include/CC/iostream.h, Line = 108 > "ostream" is ambiguous. > > ostream* tie() { return x_tie ; } > ^ > > cc-1239 CC: ERROR File = /usr/include/CC/iostream.h, Line = 138 > > ... you get the picture. But you are right, g++ is probably the way > to go ... > > thayer 104% g++ -LANG:std -I/usr/people/ruetsch/include rs.cc > ld32: WARNING 84 : /usr/lib32/libm.so is not used for resolving any symbol. > thayer 105% a.out > This has gotta work, simple cerr. > string output: This has gotta work, too. > > The only difficulty I have is with linking to -lncdf and -lncdf_c++ which > were compiled using CC. I can recompile netcdf/_c++ using gcc/g++, but sooner > or later I'm going to have to face the music with -lmpi and the likes. > Do you have any experience or advice on combining GNU and SGI objects? > > Thanks again, > > Greg > > -- > Greg Ruetsch || address@hidden > Center for Turbulence Research || http://thayer.stanford.edu/ruetsch > Stanford University || Voice: (650) 725-1821 > Stanford, CA 94305-3030 || Fax: (650) 723-9617