0

Eclipse では、CDT を使用します。

2 つの同一のビルド構成を持つ簡単な方法はありますが、一方の構成では src/foo.h のみを使用し、もう一方の構成では src/bar/foo.h のみを使用しますか?

src/ dir には他にもたくさんのヘッダー ファイルがあり、実際には 1 つのファイルだけが異なる場合に、それらすべてを 1 つずつ追加する必要がないことを楽観的に望んでいます。

また、どちらのファイルも自分で作成したライブラリやディレクトリ構造ではないため、移動したり変更したりしたくありません。(もし本当に必要なら、私はそれを整理しなければならないと思います)

ある種の「除外」リストが理想的だと思います。それは存在しますか?

4

1 に答える 1

3

ビルド対象のビルド構成を示すマクロを定義し、それを使用して含めるファイルを決定します。

プロジェクトを右クリックし、[プロパティ] を選択します。次に、ポップアップするダイアログで、[C/C++ ビルド]、[設定] の順に選択します。プリプロセッサ定義 (マクロ) を定義できるビューが表示されるはずです。

次に、ヘッダー ファイルで次のいずれかを実行します。

#ifndef MY_MACRO

// contents of header file only available when MY_MACRO is NOT defined    

#endif

または、代わりにインクルードの時点で行うことができます (おそらく行う必要があります)。そのため、これはソース ファイルです。

#ifdef MY_MACRO
#  include "bar.h"
#else
#  include "foo/bar.h"
#endif

複数のソース ファイルからヘッダー ファイルをインクルードし、上記の行をコピーしたくない場合は、上記の行をコピーして貼り付け、そのヘッダーをどこにでもインクルードするだけでインクルードを行う別のヘッダーを追加できます。

于 2012-10-14T05:24:39.977 に答える