リンカーが libpthread を見つけることができません。

リンカーが libpthread を見つけることができません。

両方のプログラムの32ビットバージョンを構築しようとしていますが、両方とも同じエラーメッセージが表示されます。

/usr/bin/ld: cannot find /media/34GB/Arquivos-de-Programas-Linux/Glibc-2.17-32bit/lib/libpthread.so.0

上記のパスでGlibcディレクトリを次に移動したので、なぜそれが見つからないのかを明確に理解してください。

/media/34GB/Arquivos-de-Programas-Linux-32bit/Glibc-2.17/lib/libpthread.so.0

しかし、なぜldが間違ったパスでlibpthreadを探しているのかわかりません。 /usr/lib32 に Glibc lib ファイルを指す複数のシンボリックリンクがありますが、これは正確です。 libpthreadを担当するシンボリックリンクは、上記の2番目のパスを指します。 ldconfigを実行しましたが、うまくいきませんでした。

最初のプログラムをビルドしようとしたときに、構成に渡されたいくつかのライブラリーにこの古いパスがハードリンクされていたため、これが理由でした。

ただし、2番目のプログラムで構成を実行するときに同じエラーメッセージが表示されるようにライブラリを渡す必要がないため、原因が異なる可能性があります。

だから私はldが古いディレクトリでlibpthreadを探している理由についてのどんな提案でも開いています。

ベストアンサー1

ld.soファイル(シンボリックリンクまたはリンカスクリプト)でライブラリを見つけます。あなたが受け取っているエラーは、あなたの以前のlibpthread.so場所を指すものを探していることを示しますlibpthread.so.0。新しい場所を指すように更新する必要があります。

おすすめ記事