I am attempting to compile a program with g77 and I keep getting the following error:
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
I saw on another forum that this is related to libgcc, when looking for libgcc I get
>find /usr/ -name libgcc*
/usr/share/doc/libgcc1
/usr/share/lintian/overrides/libgcc1
/usr/lib/libgccpp.so.1.0.3
/usr/lib/libgccpp.so.1
/usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc_eh.a
/usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc.a
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc_s_32.so
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc_eh.a
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/32/libgcc_s_32.so
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/32/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/32/libgcc_eh.a
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/32/libgcc.a
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc.a
/usr/lib/ure/lib/libgcc3_uno.so
This is because although libgcc is present, it may not be in the paths known to ldconfig. Check this by doing:
Does the output show that the link to libgcc corresponds to paths that you have listed above?
A workaround for you may be to add the link to the relevant library to your compile command e.g.
Another solution may be to create a symbolic link to the library yourself.
https://blog.andrewbeacock.com/2007/10/how-to-add-shared-libraries-to-linuxs.html
Create a new file in
/etc/ld.so.conf.d/
called.conf
Edit the file and add a line per directory of shared libraries (
*.so
files), it will look something like:Reload the list of system-wide library paths: