4

Linuxシステムで非常に古いソフトウェアをコンパイル/リンクしようとしていますが、何らかの理由で、システムにインストールされている共有ライブラリにリンクできません。

リンカから次のエラーが発生します。

/usr/bin/ld: cannot find -lXaw

ただし、lib自体はインストールされています。私が走ったら

ldconfig -v | grep libXaw

私は(とりわけ)このヒットを取得します:

libXaw.so.7 -> libXaw7.so.7.0.0

ライブラリとそのライブラリへのリンクは/usr/libbtwにあります。特別なことは何もありません。

したがって、ライブラリがそこにあり、ldconfigがそれを見つけます。リンク時にldがライブラリを見つけられない原因は何ですか?ご想像のとおり、私は共有ライブラリに慣れていません。

何か案は?

4

4 に答える 4

3

リンカは、文字通り「libXaw.so」を探している可能性があります。それは/usr/ libにありますか?そうでない場合は、libXaw7.so.7.0.0から別のソフトリンクとして追加してみてください。

于 2008-10-12T17:40:53.677 に答える
0

-L ライブラリ ディレクトリがオーバーライドされていて、/usr/lib が検索されていませんか?

于 2008-10-12T18:28:31.553 に答える
-1

リンクするには、ランタイム ライブラリである .so ファイルではなく、.a ファイルが必要です。共有オブジェクトは、ライブラリの非共有部分に対して既にリンクされているプログラムにのみ役立ちます。これは通常、「.a」ファイルで配布されます。

于 2008-10-12T17:54:44.397 に答える