[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netCDF #QGH-450146]: building netcdf4.2 on suse linux enterprise server 11 with ifort
- Subject: [netCDF #QGH-450146]: building netcdf4.2 on suse linux enterprise server 11 with ifort
- Date: Wed, 25 Apr 2012 09:33:23 -0600
Hi Felipe,
> I am having problem building netcdf4.2 on suse server 11 with ifort. I have
> installed zlib1.2.6 and hdf5.1.8.8. Apparently everything is installed
> correctly. However, when I tried to make check netcdf I am getting these
> errors:
>
> mv -f $depbase.Tpo $depbase.Po
> /bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -L/usr/lib -o
> tst_h_dimscales4 tst_h_dimscales4.o -lhdf5_hl -lhdf5 -lm -lz
> libtool: link: gcc -g -O2 -o tst_h_dimscales4 tst_h_dimscales4.o
> -L/usr/lib /usr/lib/libhdf5_hl.so /usr/lib/libhdf5.so -lrt -lm -lz
> make[2]: Leaving directory `/data1/netcdf-4.2/h5_test'
> make check-TESTS
> make[2]: Entering directory `/data1/netcdf-4.2/h5_test'
> ./tst_h_files: error while loading shared libraries: libhdf5_hl.so.7:
> cannot open shared object file: No such file or directory
> FAIL: tst_h_files
> ./tst_h_files2: error while loading shared libraries: libhdf5_hl.so.7:
> cannot open shared object file: No such file or directory
> FAIL: tst_h_files2
...
> ================================================
> 26 of 26 tests failed
> Please report to address@hidden
> ================================================
> make[2]: *** [check-TESTS] Error 1
> make[2]: Leaving directory `/data1/netcdf-4.2/h5_test'
> make[1]: *** [check-am] Error 2
> make[1]: Leaving directory `/data1/netcdf-4.2/h5_test'
> make: *** [check-recursive] Error 1
>
> When checking the net I found descriptions of the same error and it was
> said to include LD_LIBRARY_PATH what I did.
That won't work in this case for two reasons:
1. You installed libraries in /usr/lib, and that is already a
default search directory for shared libraries, so it never needs
to be added to LD_LIBRARY_PATH.
2. To use the Intel compilers, you probably had to source some
shell command script that would set LD_LIBRARY_PATH to a list of
directories containing run-time libraries for ifort and perhaps
other Intel compilers. By setting LD_LIBRARY_PATH to /usr/lib,
*after* running the Intel command script, those library paths
are no longer set, which explains why the netCDF configure
script failed with
> Then I ran the configure command with the following command:
> CPPFLAGS=-I/usr/include LDFLAGS=-L/usr/lib ./configure --disable-doxygen
> --prefix=/usr
>
> But when I do that I get the errror:
> configure: netCDF 4.2
...
> checking whether the C compiler works... no
> configure: error: in `/data1/netcdf-4.2':
> configure: error: C compiler cannot create executables
because, as the config.log shows,
> configure:4094: checking whether the C compiler works
> configure:4116: gcc -I/usr/include -L/usr/lib conftest.c >&5
> /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/as:
> error while loading shared libraries: libimf.so: cannot open shared object
> file: No such file or directory
and "libimf.so" is required by the Intel compilers, installed in some
directory that would have been in LD_LIBRARY_PATH.
> configure:4120: $? = 1
> configure:4158: result: no
> configure: failed program was:
> | /* confdefs.h */
> | #define PACKAGE_NAME "netCDF"
> | #define PACKAGE_TARNAME "netcdf"
> | #define PACKAGE_VERSION "4.2"
> | #define PACKAGE_STRING "netCDF 4.2"
> | #define PACKAGE_BUGREPORT "address@hidden"
> | #define PACKAGE_URL ""
> | #define PACKAGE "netcdf"
> | #define VERSION "4.2"
> | #define NCIO_MINBLOCKSIZE 256
> | #define USE_FSYNC 1
> | #define DEFAULT_CHUNK_SIZE 4194304
> | #define MAX_DEFAULT_CACHE_SIZE 67108864
> | #define DEFAULT_CHUNKS_IN_CACHE 10
> #define CHUNK_CACHE_SIZE 4194304
> | #define CHUNK_CACHE_NELEMS 1009
> | #define CHUNK_CACHE_PREEMPTION 0.75
> | /* end confdefs.h. */
> |
> HERE IS MY ENV VARIABLES.
...
> declare -x LD_LIBRARY_PATH="/usr/lib"
That's the one that's the problem, preventing the Intel C compiler
or Fortran compiler from working. If you had a directory other than
the default "/usr/lib" that you wanted to add to LD_LIBRARY_PATH, such
as "/usr/local/lib", a better way to set it so that the existing
LD_LIBRARY_PATH entries would still be preserved, would be something
like
LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
As for the original problem,
> ./tst_h_files: error while loading shared libraries: libhdf5_hl.so.7:
> cannot open shared object file: No such file or directory
> FAIL: tst_h_files
I'm not sure why it's not found, if you installed it in /usr/lib.
Some possible reasons are:
- The installed library is 32-bit and you need a 64-bit library for
the compiler you are using
- There is another old instance of libhdf5_hl.so installed somewhere
that has to be removed to get the linker to find the right one
- The installation of HDF5 was incomplete or interrupted, so that
the symbolic links needed in the /usr/lib directory to locate the
right version of the library were not created and installed. For
example, my installation has the following:
lrwxrwxrwx 1 19 Dec 1 13:59 libhdf5_hl.so -> libhdf5_hl.so.7.0.2*
lrwxrwxrwx 1 19 Dec 1 13:59 libhdf5_hl.so.7 -> libhdf5_hl.so.7.0.2*
-rwxr-xr-x 1 335559 Dec 1 13:59 libhdf5_hl.so.7.0.2*
- The permissions or owner on the library are wrong, so that you
can't access it ...
There are probably other possibilities as well, but I can't tell from
the information provided. You might try address@hidden or even
Intel support to determine what the root of the problem is, if it's
not one of the above guesses ...
--Russ
Russ Rew UCAR Unidata Program
address@hidden http://www.unidata.ucar.edu
Ticket Details
===================
Ticket ID: QGH-450146
Department: Support netCDF
Priority: Normal
Status: Closed