1

ファイル単位でインクルード パスを追加することはできますか?

私のプロジェクトには、パス「ABC」を含める必要のないファイル (Files1 と呼びましょう) がいくつかあります。これを行うと名前の競合が発生するためです。

次に、パス「ABC」からのヘッダーを含める必要があるいくつかのファイル(Files2と呼びましょう)があり、Files1のインクルードパスに追加せずに、パス「ABC」をFiles2のインクルードパスに追加したいと思います。

これは可能ですか、またはインクルードしたい競合するヘッダー ファイルの名前を変更する必要がありますか?

4

3 に答える 3

2

これを回避する方法の 1 つは、異なる/競合するバージョンを、同じ親フォルダーを共有する対応するサブフォルダーに配置し、ネストされた (サブディレクトリ) パスを使用してヘッダーを含め、作業しているファイルに基づいてサブディレクトリが異なるようにすることです。

そうすれば、共有の親フォルダーをインクルード検索パスに追加するだけで、別のファイル セットで次のことができます。

// files1
#include <foo/version_a/blah.h>

また

// files2
#include <foo/version_b/blah.h>

#ifdefsバージョンを切り替えてハードコーディングを回避できるように、定義できるプリプロセッサ マクロを (を使用して、または同様に) 作成することもできます。

于 2012-09-17T09:48:57.767 に答える
2

これを可能にする方法は何も知りませんが、もしあれば、そうすべきではありません。ファイルの名前を変更し、競合を解決します。そのような機能があったとしても、使用しないことを強くお勧めします。

于 2012-09-17T09:43:45.127 に答える
1

はい、目的のCPPファイルを右クリックし、[プロパティ]をクリックして、[ C++/一般]で[追加のインクルードディレクトリ]を適切に編集します。

次に、[プロパティ]ダイアログが開いたまま別のCPPファイルを左クリックし、そのファイルの[追加のインクルードディレクトリ]などを変更ます。

そうは言っても、可能であれば、名前の競合を適切に解決し、インクルードパスに依存しないようにする必要があります。

于 2012-09-17T09:58:25.713 に答える