私のグループが、ソース ファイルの約 90% を共有する一連の大規模なアプリケーションを構築する方法を再編成しようとしています。現在、これらのアプリケーションは、私たちの管理下にない外部リンクのものを除いて、ライブラリを一切使用せずに構築されています。アプリケーションは同じ共通ソース ファイルを使用します (同じ .h/.cpp ファイルの 5 つのバージョンを維持していません) が、これらはどの共通ライブラリにも組み込まれていません。そのため、現時点では、バージョンをリリースするたびに、アプリケーションごとに同じコードを何度も作成する代償を払っています。私には、これはライブラリを使用して共有コードをキャプチャし、ビルド時間を短縮するための最有力候補のように思えます。DLL を使用するオプションがないため、アプローチは静的ライブラリを使用することです。
この仕事に取り組むためのヒントを教えてください。私は静的ライブラリの作成/整理の経験が限られているため、整理/落とし穴に対する基本的な提案でも大歓迎です。多分良い本の推薦でさえありますか?
各アプリケーションが共通に共有するファイルのサブセット全体を見つけることによって、簡単な演習を行いました。概念実証として、これらのファイルを単一の「Common Monster」スタティック ライブラリに配置しました。この単一の静的ライブラリを使用して完全なアプリケーションをビルドすると、すべてのアプリケーションのビルド時間が確実に改善されますが、このままにしておく必要がありますか? この形式のライブラリの目的はあまり焦点が絞られておらず、モジュール化の怠惰な試みのように見えます。これらのアプリケーションの開発は進行中であり、この設定が今後さらに問題を引き起こすのではないかと心配しています。