0

プログラムを起動すると、次のエラーが表示されます。

共有ライブラリの読み込み中にエラーが発生しました: libnetcdf.so.6: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません

ポイントはlibnetcdf.so.6、ライブラリの古いバージョンです。削除して新しいバージョンを作成しました。

だからldd私が見ようとすると:

libnetcdf.so.7 => /usr/local/lib/libnetcdf.so.7 (0x00007f70f8c4b000)

だけでなく、

libnetcdf.so.6 => not found

なぜこの古いリファレンス? どうすれば解決できますか?

4

1 に答える 1

3

アプリケーションが .6 ではなく libnetcdf.so.7 を検索するように、アプリケーションを libnetcdf.so.7 に再リンクする必要があります。

リンカがバージョン番号なしで参照するシンボリック リンク (libnetcdf.so) が存在しない場合は、再リンクする前に作成する必要がある場合があります。

ln -s libnetcdf.so.7 libnetcfd.so

アプリケーションを再リンクできない場合は、シンボリック リンクを作成して、アプリケーションが新しいライブラリを参照するようにすることができます (ただし、ライブラリ バージョンがバイナリ互換でない場合、これによりセグメンテーション エラーが発生する可能性があります)。ファイル:

ln -s libnetcfd.so.7 libnetcfd.so.6

これにより、アプリケーションは必要な共有オブジェクトを見つけることができますが、理想的なソリューションではありません。

于 2013-09-23T14:14:19.450 に答える