web-dev-qa-db-ja.com

-lgcc_sが見つかりません

G77を使用してプログラムをコンパイルしようとすると、次のエラーが表示されます。

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

私は別のフォーラムで、これが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
7
Biz

これは、libgccは存在しますが、 ldconfig が認識しているパスにない可能性があるためです。以下を実行してこれを確認します。

Sudo /sbin/ldconfig -p | grep libgcc

出力には、libgccへのリンクが上記のパスに対応していることが示されていますか?

回避策は、関連するライブラリへのリンクをコンパイルコマンドに追加することです e.g。

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
4
connie new