まず、共有ライブラリが本当に必要かどうかを判断します。あなたの質問からは明らかではありませんが、独自のラッパーを共有ライブラリにコンパイルした場合、それはおそらく不要です。コードを静的ライブラリにコンパイルして、実行可能ファイルに直接リンクできます。
さらに、そのサードパーティ ライブラリを静的にリンクすることもできます。これは難しいことではないと思います。はい、build
マニフェストでコマンドを使用して、これらすべてを実行する必要があります。
ただし、それでも共有ライブラリを使用する必要があり、エンド ユーザーに自分でインストールさせたくない場合 (共有ライブラリのポイントであるため、これは奇妙です)、手動で配布する必要があります。たとえば、ユーザーが抽出して使用できるアーカイブを作成するメイクファイルを作成できます。プログラムがライブラリを正しく見つけるには、ユーザーにこのアーカイブをシステムのルート ディレクトリにインストールしてもらうか (たとえば/usr
、Linux では、この共有ライブラリは自動的に配置されます)、実行可能ファイルの周りに小さなシェル スクリプト ラッパーを記述する必要があります。これにより、共有ライブラリが検索され、適切な が設定されますLD_LIBRARY_PATH
。
私は最初の道を行きます。通常、すべての主要なプラットフォームは、インストール パッケージを作成する手段を提供します (Linux では deb/rpm/pkg.tar.xz/whatever、Mac では brew、Windows では Windows インストーラーですが、Windows では、共有ライブラリを同じディレクトリに置くことができます)。実行可能で動作します)。ユーザーが作業するプラットフォーム用のパッケージを作成するだけで、プログラムが正しいディレクトリにインストールされ、共有ライブラリが自動的に解決されます。