找不到-lgcc_s

我试图用g77编译程序,我不断收到以下错误:

/usr/bin/ld: cannot find -lgcc_s collect2: ld returned 1 exit status 

我在另一个论坛上看到这与libgcc有关,当我找到libgcc时

 >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 

这是因为尽管存在libgcc,但它可能不在ldconfig已知的路径中。 通过这样做来检查:

 sudo /sbin/ldconfig -p | grep libgcc 

输出是否显示libgcc的链接对应于您上面列出的路径?

您的解决方法可能是将相关库的链接添加到编译命令, 例如

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

另一种解决方案可能是自己创建一个到库的符号链接。

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