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, let's concentrate on just this failure in config.log: > /site/intel/impi/4.1.0.024/intel64/bin/mpicc -o conftest > -I/u/home/eylandej/hdf5/include -I/u/home/eylandej/zlib-1.2.7/include > -I/u/home/eylandej/szip-2.1/include -L /u/home/eylandej/hdf5/lib -L > /u/home/eylandej/zlib-1.2.7/lib - > L /u/home/eylandej/szip-2.1/lib conftest.c -lsz -ldl -lhdf5 >&5 > configure:4377: $? = 0 > configure:4384: ./conftest > ./conftest: error while loading shared libraries: libsz.so.2: cannot open It compiled OK, but couldn't run, because libsz.so.2 couldn't be found at run time. Does it help to put /u/home/eylandej/szip-2.1/lib in your LD_LIBRARY_PATH, so the dynamic loader will look there? Does the following file exist and is it readable? /u/home/eylandej/szip-2.1/lib/libsz.so.2 If you just compile a "hello world" C program using something like mpicc -o hello -L/u/home/eylandej/zlib-1.2.7/lib hello.c -lsz and then try to run the result, does it run OK? Maybe putting "-lsz" in LIBS is not the right place, perhaps it needs to be in LDFLAGS or LDLIBS. The autoconf-generated configure scripts are supposed to be able to figure out this kind of thing, but maybe they get it wrong in this case. I'm CC:ing Ward Fisher, who knows more about LDFLAGS vs. LIBS vs. LDLIBS than I do, and may be able to figure this out. --Russ > If I put -lsz in my LIBS variable, I get the following error during the > compile: > > checking whether a default cache preemption for HDF5 was specified... 0.75 > checking whether netCDF-4 logging is enabled... no > checking whether cdmremote client is to be built... no > checking whether DAP client is to be built... yes > checking for style of include used by make... GNU > checking for gcc... /site/intel/impi/4.1.0.024/intel64/bin/mpicc > checking whether the C compiler works... yes > checking for C compiler default output file name... a.out > checking for suffix of executables... > checking whether we are cross compiling... configure: error: in > `/u/home/eylandej/netcdf-4.3.0': > configure: error: cannot run C compiled programs. > If you meant to cross compile, use `--host'. > See `config.log' for more details > + exit > > > > This is what the config.log complains about: > > > /usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../lib64/crt1.o: In > function `_start': > (.text+0x20): undefined reference to `main' > collect2: ld returned 1 exit status > configure:4205: $? = 1 > configure:4225: checking whether the C compiler works > configure:4247: /site/intel/impi/4.1.0.024/intel64/bin/mpicc > -I/u/home/eylandej/hdf5/include -I/u/home/eylandej/zlib-1.2.7/include > -I/u/home/eylandej/szip-2.1/include -L /u/home/eylandej/hdf5/lib -L > /u/home/eylandej/zlib-1.2.7/lib -L /u/home/ey > landej/szip-2.1/lib conftest.c -lsz -ldl -lhdf5 >&5 > configure:4251: $? = 0 > configure:4299: result: yes > configure:4302: checking for C compiler default output file name > configure:4304: result: a.out > configure:4310: checking for suffix of executables > configure:4317: /site/intel/impi/4.1.0.024/intel64/bin/mpicc -o conftest > -I/u/home/eylandej/hdf5/include -I/u/home/eylandej/zlib-1.2.7/include > -I/u/home/eylandej/szip-2.1/include -L /u/home/eylandej/hdf5/lib -L > /u/home/eylandej/zlib-1.2.7/lib - > L /u/home/eylandej/szip-2.1/lib conftest.c -lsz -ldl -lhdf5 >&5 > configure:4321: $? = 0 > configure:4343: result: > configure:4365: checking whether we are cross compiling > configure:4373: /site/intel/impi/4.1.0.024/intel64/bin/mpicc -o conftest > -I/u/home/eylandej/hdf5/include -I/u/home/eylandej/zlib-1.2.7/include > -I/u/home/eylandej/szip-2.1/include -L /u/home/eylandej/hdf5/lib -L > /u/home/eylandej/zlib-1.2.7/lib - > L /u/home/eylandej/szip-2.1/lib conftest.c -lsz -ldl -lhdf5 >&5 > configure:4377: $? = 0 > configure:4384: ./conftest > ./conftest: error while loading shared libraries: libsz.so.2: cannot open > shared object file: No such file or directory > configure:4388: $? = 127 > configure:4395: error: in `/u/home/eylandej/netcdf-4.3.0': > configure:4397: error: cannot run C compiled programs. > If you meant to cross compile, use `--host'. > See `config.log' for more details > > > > > I've recompiled szip-2.1 a couple of different times, and that hasn't > changed the outcome. The libsz.so.2 file is in the szip-2.1/lib > directory, so I don't know why netcdf can't see the file. > > 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 5:05 PM, "Unidata netCDF Support" > <address@hidden> wrote: > > >> 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 > > > > 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