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: "Donald S. Dunbar" <address@hidden> >Subject: Installing vs 3.4 >Organization: Ocean Applied Research Ltd. >Keywords: 199804212006.OAA25357 Hi, > I am attempting to install NetCDF vs. 3.4 on my Sun Sparc 20 (Soalris > 2.6). I am using the CC and f77 compilers from Sun, as well as gcc. > All goes well until the following link occurs: > > CC -o nctst -I../libsrc -I/usr/openwin/include -O nctst.o > libnetcdf_c++.a -L../libsrc -lnetcdf > Undefined first referenced > symbol in file > __eprintf ../libsrc/libnetcdf.a(var.o) > ld: fatal: Symbol referencing errors. No output written to nctst > *** Error code 1 > make: Fatal error: Command failed for target `nctst' > Current working directory /home/local/netcdf-3.4/src/cxx > > I've tried to locate the function _eprintf w/o success. Linking the > NetCDF library with any other program results in a similar message. > I would appreciate receiving advice on how to solve this problem (I was > running vs. 2.4.3 with no problems). Thank you. The __eprintf function is supposed to be in libgcc.a, a library of run-time support for gcc. I think gcc's assert.h defines assert() to call __eprintf. CC is not linking libgcc.a, so it can't find __eprintf. However, I don't think that's the *cause* of the problem. I was able to duplicate the symptom only by setting the environment variable CPPFLAGS to "-I/usr/openwin/include" before running the "configure" script. If instead CPPFLAGS is set to the empty string or to -DNDEBUG, for example, everything works fine with gcc, f77 and CC. Nothing in netCDF makes any use of anything in /usr/openwin/include, and apparently there's something in that directory that gets improperly included if the -I/usr/openwin/include flag is used on all the gcc compile lines. So to fix the problem, try the following: 1. Unset the environment variable CPPFLAGS or set it to "-DNDEBUG". Make sure it doesn't inadvertently get set to /usr/openwin/include in your shell startup file, such as .profile, .bashrc, .kshrc, or .cshrc which might be executed when you invoke the "configure" shell script. 2. Remove the src/config.cache file. 3. From the src/ directory, invoke make clean ./configure make all test If that doesn't work, please let us know. --Russ _____________________________________________________________________ Russ Rew UCAR Unidata Program address@hidden http://www.unidata.ucar.edu