私は過去 2 年間、組み込み Linux プロジェクトで Eclipse を使用してきました。
Unbutu ホストでコードを変更せずに実行できるため、ほとんどのテストをホストで実行できます。各プロジェクトには、ホスト用のデバッグ構成と、組み込み Linux デバイス用のターゲット デバッグがあり、クロス コンパイル ツールチェーンでビルドされます。
私のワークスペースには、ライブラリとライブラリを参照する実行可能ファイルで構成される 20 以上のプロジェクトがあります。私が抱えている問題は、実行可能ファイルをビルドするたびに、Eclipseが参照されたライブラリを再構築する方法に韻や理由がないように見えることです。ライブラリ内のコードが変更されていない場合、ほとんどの場合、それらのいくつかがビルドされます。ライブラリをビルドするとき、いくつかのファイルだけでなく、ライブラリ内のすべてのソースをビルドします。場合によっては、ターゲットの実行可能ファイルが最新で、それ自体が再構築されていない場合でも、そうすることがあります。実行可能ファイルを消去してからビルドできます。すぐに別のビルドを行い、すべてが最新であることを報告する代わりに、一部のライブラリをビルドする可能性があります。もう一度ビルドすると、同じライブラリが再度ビルドされるか、場合によっては最終的にすべてが最新であると報告されることがあります。
実行可能ファイルのすべてのビルド構成には、「アクティブ」ではなく、参照される正確なライブラリ ビルドがあります。たとえば、Target-Debug 実行可能ビルド構成の場合、依存するライブラリの Target-Debug ビルドを参照します。実行可能ファイルをビルドするとき、ライブラリ用に選択された「アクティブな」ビルド構成が、ビルド中の実行可能ファイルと同じではない可能性がよくありますが、実行可能ファイルのビルド構成が特定のライブラリ ビルド構成を参照するかどうかは問題ではありません。
かつて、同じタイプでさえない構成の再構築が問題に含まれていました。つまり、実行可能ファイルのデバッグ バージョンをビルドすると、ライブラリのターゲット デバッグ構成も再ビルドされます。この問題は、Project References のチェックを外すことで解決されるようです (C/C++ General/Paths and Symbols/References とは対照的に)。
Helios、Juno、そして現在はそれぞれの CDT リリースの Kepler でも同じ問題が発生しました。
依存ライブラリ プロジェクトが変更されていないときに、Eclipse が依存ライブラリ プロジェクトを再構築しないようにするにはどうすればよいですか? なぜそれが起こっているのかを理解し、解決策を探すためにあらゆることを試みました。Eclipseビルドのいくつかの概念について、私の側で誤解が生じているのでしょうか? 私は途方に暮れています...
アドバイスをいただければ幸いです。