4

私はかなりの数のライブラリに依存する C++ プログラムを持っています (libjpeg のようないくつかの一般的なシステム ライブラリは、システム全体にインストールされていないいくつかの個人用ライブラリです)。プログラムは、マシン A (Debian Squeeze) で適切にコンパイルされます。マシン B (Ubuntu maveric) とマシン C (Arch) でプログラムを実行したいと思います。両方のマシン B+C が非常に最小限のインストールであると仮定します。私のプログラムがそこで使用するライブラリを見つけることを期待しないでください。もしあれば、それらは同じバージョンではありません。

プログラムをスキャンしてすべての依存関係を (ldd などを使用して) 調べ、それらのすべての依存関係を収集し、バイナリにこれらと他のシステムに付属するこれらのライブラリのみを使用するように指示するスクリプトを生成できるプログラムはありますか?

ありがとうございました !

4

2 に答える 2

2

あなたの質問に対する答えは、静的にリンクすることです。たとえば、g++-staticを使用します。

于 2011-01-27T20:37:07.593 に答える
2

あなたの質問を100%理解できるかどうかはわかりませんが、パッケージと一緒にライブラリを出荷し、LD_LIBRARY_PATHを使用して、リンカに出荷されたライブラリディレクトリを他の何よりも先に検索させるようにします。

それ以上のことがあれば、私はこれについていくらかの経験を持っているので、私の答えを修正することができます。あなたが何を求めているのかを私が知っていることを確認したいだけです。

于 2011-01-27T19:26:32.070 に答える