「フロントエンド」ライブラリと複数の「バックエンド」ライブラリを構築するライブラリ プロジェクトを維持しています。このプロジェクトでは、Libtool を含む Autotools スイート (私が学習していて、プロジェクトの実装にはメンテナンスが必要であることがわかっています) を利用しています。共有ライブラリとして、すべてが非常にうまく機能します。ライブラリを使用するアプリケーション開発者がいて、複数のプラットフォーム間でのソフトウェア配布を容易にするために静的ライブラリを使用してビルドすることを好みます (彼の動機について議論するつもりはありません)。
彼は以前、私たちのビルド システムを使用して 1 つの大きな静的ライブラリをビルドできましたが、現在はできなくなっていると私に言いました。これがいつ発生したかを正確に追跡することはできませんでしたが、2 つの変更のいずれかに関連している可能性があると思われます。最初の変更は、バンドルされている libtool ソース ディレクトリの削除です。2 つ目は、バックエンド ライブラリを以前のように /usr/local/lib (デフォルトの場所) に分散させるのではなく、/usr/local/lib/project に配置することでした。
私が学ぶことができなかったのは、フロントエンド ライブラリをバックエンドと組み合わせて、/usr/local/lib の下に単一の便利なライブラリを作成し、それを Autotools フレームワーク内で行う方法です。これは可能だと思われますが、学ぶべき例は見つかりませんでした。
余談ですが、プロジェクトはテスト スイートの一部としていくつかのユーティリティをビルドします。--disable-shared オプションを指定して configure を実行してから make を実行すると、ユーティリティがプロジェクト ライブラリに静的にリンクされます。今、私の使命は、この機能をサードパーティのアプリケーションで利用できるようにすることです。