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.
> Ok. Added the export statements back in, and the resulting output from > the "configure" script is the same: > > Script: > #!/bin/bash > # Proper header for a Bash script. > > set -x > > export H5DIR=/u/home/eylandej/hdf5 > export CC=/site/intel/impi/4.1.0.024/intel64/bin/mpicc > echo $LD_LIBRARY_PATH > export LD_LIBRARY_PATH=${H5DIR}/lib:$LD_LIBRARY_PATH > export CPPFLAGS="-I${H5DIR}/include -I/u/home/eylandej/zlib-1.2.7/include > -I/u/home/eylandej/szip-2.1/include" > export LDFLAGS="-L${H5DIR}/lib -L/u/home/eylandej/zlib-1.2.7/lib > -L/u/home/eylandej/szip-2.1/lib" > export LIBS=-ldl > ./configure --prefix=/u/home/eylandej/netcdf-4.3.0 --enable-parallel-tests > --disable-shared > > exit From the config.log file you sent, it looks like you compiled HDF5 with --disable-shared, so all libraries that HDF5 depends on need to be expicitly specified when linking. But there's no "-lsz" for the szip library, so that has to be added to LIBS, which should be: LIBS="-lsz -ldl" If that doesn't work, keep sending the config.log and we should be able to figure out if anything else is needed. --Russ > Screen output from configure: > > > checking whether isinf is declared... yes > checking whether isfinite is declared... yes > checking whether signbit is declared... yes > checking for struct stat.st_blksize... yes > checking for IEEE floating point format... yes > checking for size_t... (cached) yes > checking for off_t... yes > checking for ssize_t... yes > checking for ptrdiff_t... yes > checking for uchar... no > checking for longlong... no > checking whether char is unsigned... no > checking whether byte ordering is bigendian... no > checking size of short... 2 > checking size of int... 4 > checking size of long... 8 > checking size of long long... 8 > checking size of float... 4 > checking size of double... 8 > checking size of off_t... 8 > checking size of size_t... 8 > checking for library containing deflate... none required > checking for floor in -lm... yes > checking for library containing H5Fflush... no > configure: error: Can't find or link to the hdf5 library. Use > --disable-netcdf-4, or see config.log for errors. > + exit > > While the above is identical to all results I've seen from each attempt to > configure, I notice different errors in the config.log (see attached). > The compile commands do have the hdf5 libs and include files corrected > referenced, but still can't link to the Hdf5 library: > > /* end confdefs.h. */ > | > | /* Override any GCC internal prototype to avoid an error. > | Use char because int might match the return type of a GCC > | builtin and then its argument prototype would still apply. */ > | #ifdef __cplusplus > | extern "C" > | #endif > | char H5Fflush (); > | int > | main () > | { > | return H5Fflush (); > | ; > | return 0; > | } > configure:16246: result: no > configure:16253: error: Can't find or link to the hdf5 library. Use > --disable-netcdf-4, or see config.log for errors. > > > > NOTE: I'm using Intel MPI compiler...just in case you didn't see that. I > tried using OpenMPI, but had the same result as using IntelMPI. > > John > > > > > > -- > > > ________________________________________ > > John B. Eylander > Cold Regions Research and Engineering Lab > U.S. Army Engineer Research and Development Center > 72 Lyme Road > Hanover, NH 03755 > > PH: 603-646-4188 BB: 603-359-9717 > > Unclass: address@hidden > SIPR: address@hidden > JWICS: address@hidden > ________________________________________ > > > > > > > > On 7/30/13 3:33 PM, "Unidata netCDF Support" > <address@hidden> wrote: > > >John, > > > >> I am not running as root or sudo. I don't have those privileges on the > >> system. > >> > >> Also understand...the --with statements are ignored; however, I also > >>have > >> included the libraries in my LDFLAGS and CPPFLAGS environmental > >>variables > >> that I included in the --with statements. I will clean up my configure > >> script to remove the --with statements though. > >> > >> My config.log is attached. > > > >Are you exporting the environment variables LDFLAGS and CPPFLAGS? One > >way of doing this is preceding the invocation of configure but on the > >same line, or you can also > >give them as arguments to configure. However, if you just define them in > >the shell > >in which configure is invoked, I don't think they get inherited by > >configure's > >subshell. > > > >I'm asking, because of these lines in the config.log you sent: > > > > CC='/site/intel/impi/4.1.0.024/intel64/bin/mpicc' > > ... > > CPPFLAGS='' > > ... > > LDFLAGS='' > > > >and the compile lines that don't have the "-L" or "-I" flags needed to > >find the > >HDF5 libraries: > > > > /site/intel/impi/4.1.0.024/intel64/bin/mpicc -o conftest -g -O2 > >conftest.c -lhdf5 -lm -lcurl >&5 > > /usr/bin/ld: cannot find -lhdf5 > > collect2: ld returned 1 exit status > > > >Different shells have different syntax for exporting environment > >variables, but > >I think you only need to use > > > > export CPPFLAGS="-I${H5DIR}/include > >-I/u/home/eylandej/zlib-1.2.7/include -I/u/home/eylandej/szip-2.1/include" > > > >and similarly for LDFLAGS ... > > > >--Russ > > > >> On 7/30/13 2:43 PM, "Unidata netCDF Support" > >> <address@hidden> wrote: > >> > >> >> Ok. Thanks so far. I am now transitioning to go with your > >>suggestion of > >> >> compiling netcdf 4.3.0 first then compiling NetCDF 4.2 fortran. > >> >> > >> >> However...trying to compile NetCDF4.3.0 I get the exact same error as > >> >>when > >> >> I was trying to compile netcdf 4.1.3. > >> >> > >> >> My configure script (sets up the enviro variables, etc) > >> >> > >> >> In directory /u/home/eylandej/netcdf-4.3.0 > >> >> > >> >> #!/bin/bash > >> >> # Proper header for a Bash script. > >> >> > >> >> set -x > >> > > >> >Are you running configure using sudo or as root? There can be > >> >problems with inheriting environment variables with sudo, due to > >> >security policies. We recommend running configure and make check as a > >> >normal user, and only using sudo for "make install". > >> > > >> >If that's not it, can you attach or otherwise make available the whole > >> >config.log file created by the configure script. Also, note that the > >> >"--with-zlib=" and "--with-szip=" option syntax hasn't been supported > >> >by the netCDF configure script for a while. Instead, all the > >> >information about libraries and header file locations is supposed to > >> >be conveyed in the LDFLAGS and CPPFLAGS, and LD_LIBRARY_PATH > >>environment > >> >variables. The configure script just ignores flags it doesn't > >> >process, such as --with-zlib= ... It also ignores CXX, as the > >> >netcdf-4.3.0 distribution is only for the C libraries and utilities. > >> > > >> >--Russ > >> > > >> >> export H5DIR=/u/home/eylandej/hdf5 > >> >> CC=/site/intel/impi/4.1.0.024/intel64/bin/mpicc > >> >> CXX=/site/intel/impi/4.1.0.024/intel64/bin/mpicxx > >> >> echo $LD_LIBRARY_PATH > >> >> LD_LIBRARY_PATH=${H5DIR}/lib:$LD_LIBRARY_PATH > >> >> CPPFLAGS="-I${H5DIR}/include -I/u/home/eylandej/zlib-1.2.7/include > >> >> -I/u/home/eylandej/szip-2.1/include" > >> >> LDFLAGS="-L${H5DIR}/lib -L/u/home/eylandej/zlib-1.2.7/lib > >> >> -L/u/home/eylandej/szip-2.1/lib" > >> >> LIBS=-ldl > >> >> ./configure --prefix=/u/home/eylandej/netcdf-4.3.0 > >> >> --with-zlib=/u/home/eylandej/zlib-1.2.7 > >> >> --with-szip=/u/home/eylandej/szip-2.1 \ > >> >> --enable-parallel-tests --disable-shared > >> >> > >> >> exit > >> >> > >> >> > >> >> > >> >> Here is the output of the ./configure script: > >> >> > >> >> checking for ssize_t... yes > >> >> checking for ptrdiff_t... yes > >> >> checking for uchar... no > >> >> checking for longlong... no > >> >> checking whether char is unsigned... no > >> >> checking whether byte ordering is bigendian... no > >> >> checking size of short... 2 > >> >> checking size of int... 4 > >> >> checking size of long... 8 > >> >> checking size of long long... 8 > >> >> checking size of float... 4 > >> >> checking size of double... 8 > >> >> checking size of off_t... 8 > >> >> checking size of size_t... 8 > >> >> checking for library containing deflate... none required > >> >> checking for floor in -lm... yes > >> >> checking for library containing H5Fflush... no > >> >> configure: error: Can't find or link to the hdf5 library. Use > >> >> --disable-netcdf-4, or see config.log for errors. > >> >> > >> >> I looked through the config.log file, but nothing seems obvious. > >> >> > >> >> I KNOW that H5Fflush is in the HDF libraries. I ran a nm on the HDF5 > >> >> libs, and H5Fflush is in there. I don't know why netcdf won't see > >>that. > >> >> > >> >> John > >> >> > >> >> > >> >> > >> >> > >> >> -- > >> >> > >> >> > >> >> ________________________________________ > >> >> > >> >> John B. Eylander > >> >> Cold Regions Research and Engineering Lab > >> >> U.S. Army Engineer Research and Development Center > >> >> 72 Lyme Road > >> >> Hanover, NH 03755 > >> >> > >> >> PH: 603-646-4188 BB: 603-359-9717 > >> >> > >> >> Unclass: address@hidden > >> >> SIPR: address@hidden > >> >> JWICS: address@hidden > >> >> ________________________________________ > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> On 7/30/13 1:28 PM, "Unidata netCDF Support" > >> >> <address@hidden> wrote: > >> >> > >> >> >Hi John, > >> >> > > >> >> >We recommend this way to build with parallel I/O support: > >> >> > > >> >> > http://www.unidata.ucar.edu/netcdf/docs/build_parallel.html > >> >> > > >> >> >This works for netCDF version 4.3.0, but I don't know for sure > >> >> >whether it works for the older 4.1.3 release. Is there some reason > >> >> >you have to use version 4.1.3? I notice you're building a separate > >> >> >netCDF-Fortran library anyway, which is what you would do if you > >> >> >first build and install netCDF-C library version 4.3.0, then build > >> >> >and install netCDF-Fortran version 4.2 according to these > >>instructions: > >> >> > > >> >> > > >>http://www.unidata.ucar.edu/netcdf/docs/netcdf-fortran-install.html > >> >> > > >> >> >paying attention to the parallel I/O instructions in step 4, under > >>the > >> >> >"Using Static Libraries" section, if that's what you want to > >>install. > >> >> > > >> >> >--Russ > >> >> > > >> >> >> Full Name: John Eylander > >> >> >> Email Address: address@hidden > >> >> >> Organization: Army Cold Regions Research & Eng. Lab > >> >> >> Package Version: 4.1.3 > >> >> >> Operating System: RHEL 6.2 64-bit OS > >> >> >> Hardware: 64-Bit > >> >> >> Description of problem: I'm having extreme troubles compiling > >>NetCDF > >> >> >>4.1.3 (with parallel I/O support enabled). I have HDF5 1.8.6 > >> >>installed > >> >> >>and successfully compiled and installed. I have searched all the > >> >>google > >> >> >>sources I know to try to find the right flag or option to turn > >>off/on > >> >> >>with no luck. Here is my NetCDF compile script: > >> >> >> > >> >> >> HDF_DIR=/u/home/eylandej/hdf5 > >> >> >> export CC=/site/intel/impi/4.1.0.024/intel64/bin/mpicc > >> >> >> export F77=/site/intel/impi/4.1.0.024/intel64/bin/mpif77 > >> >> >> export CXX=/site/intel/impi/4.1.0.024/intel64/bin/mpicxx > >> >> >> export FC=/site/intel/impi/4.1.0.024/intel64/bin/mpif90 > >> >> >> echo $LD_LIBRARY_PATH > >> >> >> export > >> >>LD_LIBRARY_PATH=/u/home/eylandej/hdf5-1.8.6/lib:$LD_LIBRARY_PATH > >> >> >> export FCFLAGS="-I/u/home/eylandej/hdf5/include > >> >> >>-I/u/home/eylandej/zlib-1.2.7/include > >> >> >>-I/u/home/eylandej/szip-2.1/include -m64" > >> >> >> export CPPFLAGS="-I/u/home/eylandej/hdf5/include > >> >> >>-I/u/home/eylandej/zlib-1.2.7/include > >> >> >>-I/u/home/eylandej/szip-2.1/include -DpgiFortran" > >> >> >> export FFLAGS="-I/u/home/eylandej/hdf5/include > >> >> >>-I/u/home/eylandej/zlib-1.2.7/include > >> >> >>-I/u/home/eylandej/szip-2.1/include -m64" > >> >> >> export LDFLAGS="-L${HDF_DIR}/lib -L/u/home/eylandej/zlib-1.2.7/lib > >> >> >>-L/u/home/eylandej/szip-2.1/lib" > >> >> >> LIBS="-ldl -lz -lm -lhdf5 -lhdf5_hl -lhdf5_fortran > >>-lhdf5hl_fortran" > >> >> >> ./configure --prefix=/u/home/eylandej/netcdf-4.1.3 > >> >> >>--with-zlib=/u/home/eylandej/zlib-1.2.7 > >> >> >>--with-szip=/u/home/eylandej/szip-2.1 \ > >> >> >> --enable-netcdf-4 --enable-pnetcdf4 --disable-dap --disable-shared > >> >> >>--enable-static \ > >> >> >> --enable-separate-fortran --enable-f90 --with-udunits > >>--with-libcf > >> >> >>--enable-large-file-tests --enable-parallel-tests > >> >> >> > >> >> >> This is the error I get during the "configure" stage of compiling > >> >> >>NetCDF: > >> >> >> > >> >> >> checking for ptrdiff_t... yes > >> >> >> checking for uchar... no > >> >> >> checking for longlong... no > >> >> >> checking whether char is unsigned... no > >> >> >> checking whether byte ordering is bigendian... no > >> >> >> checking size of short... 2 > >> >> >> checking size of int... 4 > >> >> >> checking size of long... 8 > >> >> >> checking size of float... 4 > >> >> >> checking size of double... 8 > >> >> >> checking size of off_t... 8 > >> >> >> checking size of size_t... 8 > >> >> >> checking for library containing deflate... none required > >> >> >> checking for floor in -lm... yes > >> >> >> checking for library containing H5Fflush... no > >> >> >> configure: error: Can't find or link to the hdf5 library. Use > >> >> >>--disable-netcdf-4, or see config.log for errors. > >> >> >> + exit > >> >> >> > >> >> >> I need to compile NetCDF 4 with parallel I/O support for WRF > >>version > >> >> >>3.4.1. Any ideas on what I have done wrong with my flags/options? > >> >>I've > >> >> >>been struggling with this for a couple of weeks... Thanks in > >>adance! > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >Russ Rew UCAR Unidata > >>Program > >> >> >address@hidden > >>http://www.unidata.ucar.edu > >> >> > > >> >> > > >> >> > > >> >> >Ticket Details > >> >> >=================== > >> >> >Ticket ID: MLF-697840 > >> >> >Department: Support netCDF > >> >> >Priority: Normal > >> >> >Status: Closed > >> >> > > >> >> > >> >> > >> > > >> >Russ Rew UCAR Unidata Program > >> >address@hidden http://www.unidata.ucar.edu > >> > > >> > > >> > > >> >Ticket Details > >> >=================== > >> >Ticket ID: MLF-697840 > >> >Department: Support netCDF > >> >Priority: Normal > >> >Status: Closed > >> > > >> > >> > >> > >Russ Rew UCAR Unidata Program > >address@hidden http://www.unidata.ucar.edu > > > > > > > >Ticket Details > >=================== > >Ticket ID: MLF-697840 > >Department: Support netCDF > >Priority: Normal > >Status: Closed > > > > > Russ Rew UCAR Unidata Program address@hidden http://www.unidata.ucar.edu Ticket Details =================== Ticket ID: MLF-697840 Department: Support netCDF Priority: Normal Status: Closed