4

システムを(ubuntu 13.04に)アップグレードしましたが、プロセスのどこかでgccが壊れました:-(何かをコンパイルしようとすると、この例外が発生します:

/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/bin/as:
error while loading shared libraries:
libopcodes-2.22-system.so: cannot open shared object file: No such file or directory

実際には libopcodes- 2.22 -system.so は存在しませんが、 libopcodes- 2.23.2 -system.so は存在します。2.22 から 2.23 へのシンボリック リンクを行うと、別のライブラリだけで gcc が失敗します。

そのため、何らかの理由で間違ったバージョンを探しています。gcc、binutils、libc6などを再インストールして解決しようとしましたが、問題はまだ存在します。

gcc に正しい共有ライブラリ バージョンを使用するように指示するにはどうすればよいですか? / gcc は、使用する共有ライブラリの情報をどこから取得しますか?

どうも

4

1 に答える 1

3

みんなありがとう、あなたのコメントは私が正しい場所を見るようにしました.

このパスは私を疑わせました:

/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/bin/as

へのシンボリックリンクであるに違いないと思いましたが、それが完全なコピー/usr/bin/asあることが明らかになりました-最新ではないため、バイナリが正しくリンクされていません。bin ディレクトリ全体のコピーがそこにあり、 gcc が を優先して使用した理由がわかりません。/usr/x86_64-linux-gnu/bin/usr/bin/usr/bin

を削除した後、コンパイラは正常に動作しています/usr/x86_64-linux-gnu 編集:同じことをする前にコメントを確認してください。

于 2013-07-18T14:05:50.873 に答える