cannot find -lgcc_s

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

Solution 1:

This is because although libgcc is present, it may not be in the paths known to ldconfig. Check this by doing:

sudo /sbin/ldconfig -p | grep libgcc

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.

g++ program.cpp -L /usr/lib/gcc/x86_64-linux-gnu/4.6/

Another solution may be to create a symbolic link to the library yourself.

 ln -s /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc_s.so /usr/lib/gcc/libgcc_s.so