0

私はプログラムをコンパイルしました、それはtiff共有ライブラリに依存します、私のコンピューターではライブラリのバージョンはlibtiff.so.4ですが、別のコンピューターでは実行できませんでした(tiffのメジャーバージョン番号は5、libtiff.so.5です)。
誰もがこの問題を解決するための良いアプローチを持っています。
ありがとう

linux-gate.so.1 => (0xb76f3000)       
libtiff.so.4 => not found   
libQtGui.so.4 => /home/ken/wpsenv/3rdparty/qt/lib/libQtGui.so.4 (0xb69cb000)
4

2 に答える 2

2

共有ライブラリ バージョン ("soname" と呼ばれる) の考え方は、バイナリ互換性を反映するものです。プログラムが libtiff.so.4 にリンクされている場合、それが必要なバージョンです。libtiff.so.5 は、libtiff.so.4 と互換性のない新しいライブラリになります。(ここでのバージョン番号は、プロジェクトの公式バージョンと一致する必要はありません。.4 と .5 は、バイナリの後方互換性レベルを反映していると考えられます)。

次の 2 つの選択肢があります。

  • 必要な libtiff ライブラリをインストールします。多くのディストリビューションは、共存できるさまざまなバージョンのライブラリを提供します。
  • libtiff.so.5 にリンクするようにアプリケーションを再コンパイルします。
于 2013-09-18T08:58:15.887 に答える
0

libtiff.a がオプションであり、libtiff.a がシステムに存在する場合は、libtiff.a をプログラムに静的にリンクします。

gcc main.c libtiff.a へのパス -o myprog

于 2013-09-18T08:59:16.663 に答える