This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: libcloog-isl.so.4: cannot open shared object file: No such file or directory
- From: David Jonathan Pryce Morris <djpmorris at anl dot gov>
- To: Manfred Schwarb <manfred99 at gmx dot ch>
- Cc: fortran at gcc dot gnu dot org
- Date: Fri, 12 Jul 2013 09:46:02 -0500
- Subject: Re: libcloog-isl.so.4: cannot open shared object file: No such file or directory
- References: <1373469764 dot 5195 dot 304 dot camel at nxrs2 dot msd dot anl dot gov> <51DDD3F0 dot 70802 at gmx dot ch> <1373578574 dot 29861 dot 20 dot camel at nxrs2 dot msd dot anl dot gov> <51DFC903 dot 2070005 at gmx dot ch>
> > Hi Manfred,
> >
> > Thanks for your reply. I have made the changes that you suggested to
> > my /etc/bashrc file but I still get the same error when I try to compile
> > hello.f90.
> >
> > That file is simply:
> > program hello
> > print *, "Hello World!"
> > end program hello
> >
> > When I compile that code I get the following.
> >
> > Documents]$ gfortran hello.f90 -o hello.exe
> > /usr/local/gcc-4.8/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/f951:
> > error while loading shared libraries: libcloog-isl.so.4: cannot open
> > shared object file: No such file or directory
> >
>
> This sounds strange somehow.
> Have you sourced your bashrc (or did a new login) ?
I opened a new xterm after changing bashrc each time and this seemed to
work. When I checked the path after each change it was the latest
version.
> What tells "type -a gfortran" ?
~]$ type -a gfortran
gfortran is a function
gfortran ()
{
export LD_LIBRARY_PATH=/usr/local/gcc4.8/lib64:$LD_LIBRARY_PATH;
/usr/local/gcc-4.8/bin/gfortran "$@"
}
gfortran is /usr/local/gcc-4.8/bin/gfortran
gfortran is /usr/local/gcc-4.8/bin/gfortran
gfortran is /usr/bin/gfortran
>
> It seems this has nothing to do with GCC, it's simply a path issue, as
> the library libcloog-isl.so is not found.
>
> So you have to make sure your LD_LIBRARY_PATH contains a segment which
> points exactly to the location of your libcloog-isl.so.4.
>
>
> >
> > Could the previous version of g compilers be conflicting with this
> > latest version? I did not remove the previous version whilst trying 4.8
> > out in /usr/local. The files for the older version are in /usr/ but I
> > know that I am running the newer version by using the gfortran -v
> > command.
> >
>
> Not so much an issue for compiling, but when running your hello.exe (when you
> managed to build it), you have to make sure it uses the correct libgfortran.so.
> You can check this with the command "ldd hello.exe".
>
>
> Cheers,
> Manfred
>
>
> > Documents]$ gfortran -v
> > Using built-in specs.
> > COLLECT_GCC=/usr/local/gcc-4.8/bin/gfortran
> > COLLECT_LTO_WRAPPER=/usr/local/gcc-4.8/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/lto-wrapper
> > Target: x86_64-unknown-linux-gnu
> > Configured with: ../gcc-4.8-source/gcc-4.8-20130704/configure
> > --enable-languages=c,c++,fortran --enable-checking=release
> > --disable-libmudflap --disable-libstdcxx-pch --enable-libgomp
> > --enable-lto --enable-gold --with-plugin-ld=/usr/bin/gold
> > --with-cloog-include=/usr/include-cloog --with-cloog-lib=/usr/lib64
> > --prefix=/usr/local/gcc-4.8
> > Thread model: posix
> > gcc version 4.8.2 20130704 (prerelease) (GCC)
> >
> > The error message given during compiling hello.f90 talks about
> > libcloog-isl.so.4 and in the information provided by that gfortran -v it
> > says:
> > --with-cloog-include=/usr/include-cloog
> > --with-cloog-lib=/usr/lib64
> > DOes this mean that gfortran is looking for libclood-isl.so.4 in these
> > folders? These are not the folders that I have placed libclood-isl.so.4.
> > How can I get gfortran to use the correct folder for this file?
> >
I tried to move the required libraries from one of the folder that I
have then in to the folder that gfortran -v says that it wanted them in:
Documents]$ sudo cp /usr/gcc-4.8/lib64-pre/* /usr/lib-64
When I opened a new xterm this did build hello.f90 but hello.exe would
not run.
Documents]$ ldd hello.exe
./hello.exe: /usr/lib64/libgfortran.so.3: version `GFORTRAN_1.4' not
found (required by ./hello.exe)
linux-vdso.so.1 => (0x00007fffdb5ff000)
libgfortran.so.3 => /usr/lib64/libgfortran.so.3 (0x00007fa8c851f000)
libm.so.6 => /lib64/libm.so.6 (0x000000385b400000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003861c00000)
libquadmath.so.0 => not found
libc.so.6 => /lib64/libc.so.6 (0x000000385b800000)
/lib64/ld-linux-x86-64.so.2 (0x000000385b000000)
Trying to run the code gives:
Documents]$ ./hello.exe
./hello.exe: error while loading shared libraries: libquadmath.so.0:
cannot open shared object file: No such file or directory
The file libquadmath.so.0 is in the /usr/local/gcc-4.8/lib
and /usr/local/gcc-4.8/lib64/ directories but not in /usr/lib64. Is
there a way of configuring gfortran to make it look
in /usr/local/gcc-4.8 for the libraries that it needs?
I guess that I can just copy the whole /usr/local/gcc-4.8/lib
and /usr/local/gcc-4.8/lib64 into /usr/lib and /usr/lib64 directories.
But it would be better to get gfortran to look in the places that we
want.
Thanks for your help,
Jonathan
> > Or is there another issue?
> >
> > Thanks for your help,
> > Jonathan
> >
> >
> >
> >>
> >>> When I try to compile a simple "hello world" program to test the
> >>> installation then I get the following error. What does this error mean?
> >>> Where should I unpack gcc-4.8-infrastructure?
> >>>
> >>>
> >>> gfortran hello.f90 -o hello.exe
> >>> /usr/local/gcc-4.8/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/f951:
> >>> error while loading shared libraries: libcloog-isl.so.4: cannot open
> >>> shared object file: No such file or directory
>