0

非常に密接に関連するプロジェクトがいくつかある Visual Studio 2010 ソリューションがあります。コピー アンド ペースト コードの共有から離れて、プロジェクト間でいくつかの共通クラスを共有したいと考えています。プロジェクト A からプロジェクト B にクラスへの参照を追加しようとしましたが、共有クラスが間違った stdafx.h ファイルを参照している場合にコンパイル エラーが発生します。両方のプロジェクトでプリコンパイル済みヘッダーが (デフォルトで) オンになっていることに注意してください。

また、プリプロセッサ定義を使用して正しい stdafx.hファイルを #ifdef できないこともわかりました。

この時点で、スタティック ライブラリ プロジェクトまたは複数のプロジェクトをビルドしてプロジェクト A と B の両方から参照するか、ビルド前のイベントで正しい stdafx.h ファイルを共有コードにコピーするかのいずれかのオプションがあるようです。サブフォルダー。3 つ目は、stdafx.h をまったく使用しないように両方のプロジェクトを再設計することです。

これらのオプションはすべて、私にはやり過ぎのように思えます。私が見逃している簡単な解決策はありますか?

4

3 に答える 3

1

あなたの質問を読んで真っ先に頭に浮かんだのは、次の 2 つです。

  1. プリコンパイル済みヘッダーをオフにします。
  2. 共通コードを共有ライブラリとしてコンパイルします。

インスタンス1では、より迅速に生産性を高めることができますが、プロジェクトから stdafx を削除しないでください。プロジェクトを通過し、プリコンパイル済みヘッダーをオフにする必要があるためです。追加したものをすべて削除し、両方のプロジェクトのデフォルトのままにしてください。これをやらなければならなくなってからしばらく経ちましたが、その後、各 cpp ファイルを右クリックして個別にコンパイルすると思います。これにより、そのコンパイル単位の不足しているヘッダー ファイルが得られます。それらを追加してからすすぎ、それぞれについて繰り返します。

静的解析を通じてコードを実行すると、コンパイルを高速化できるもの (前方宣言とインクルードなど) が強調表示されます。

于 2016-06-14T06:58:13.643 に答える