2012-01-19 8 views
19

私はC言語のプロジェクトでプリコンパイル済みヘッダーを使用していますが、.CPPファイルをプロジェクトに統合しています。混合CおよびC++を使用したプリコンパイル済みヘッダー

はここでエラーです:

Error 1 fatal error C1853: 'Debug\MuffinFactory.pch' precompiled header 
file is from a previous version of the compiler, or the precompiled header is C++ 
and you are using it from C (or vice versa)  
c:\users\blake\desktop\projects\muffinfactory\source\main.cpp 1 

我々は唯一の私たちのプロジェクトでコンパイルされ、単一の.CPPが必要ですが、私たちは本当にコンパイル(はWindows.hおよびそれ以上)の時間を節約するために、プリコンパイル済みヘッダーを必要としています。

これを行うにはどうすればよいですか?

+0

CをC++としてコンパイルできますか? –

+1

これは、このように結合しようとした最後の問題ではありそうにありません。通常の問題は、いくつかの.CをC++プロジェクトに挿入しようとすることであり、それ以外の方法ではありません。 –

+0

stdafx.h for Novices - http://www.viva64.com/en/b/0265/ –

答えて

19

したがって、その単一のファイルに対してプリコンパイル済みヘッダーを使用しないでください。

.cppファイルであるため、とにかく別のコンパイルオプションがあります。

+0

あなたが@ Perssonと答えたものを説明してください。 –

+0

@nafeeurこれはずっと前ですが、CとC++には異なるコンパイラオプションが必要であると考えられていたので、あらかじめコンパイルされたヘッダを両方のセットで使用できませんコンパイラはそれを受け入れた)。したがって、単一のCPPファイルを別々にコンパイルして、それにプリコンパイル済みのヘッダーを使用しないでください。 –

5

プロジェクトに2つのプリコンパイル済みヘッダーを作成できる場合があります。各ソースファイルには、プリコンパイル済みヘッダーを使用するか、プリコンパイル済みヘッダーを生成するかを決定するプロパティがあります。ヘッダーを生成するために2つの異なるソースを設定してみてください。

+0

素晴らしいオプション!しかし、.vcprojでちょっとした作業が必要です。 –

+10

追加情報:ソリューションエクスプローラから「プリコンパイル済みヘッダー」を使用したくない.cファイルを選択する - >右クリック - >プリコンパイル済みヘッダーオプションの下でプリコンパイル済みヘッダーを使用しないを選択 – Zuuum

+0

ありがとうZuuumこれはc& VSのC++。 – Gob00st

1

別のC++プリコンパイル済みヘッダーファイル(別のファイルのコピーであるMuffinFactoryCpp.h)を作成してみてください。 「プリコンパイル済みヘッダー」のプロジェクト設定を見て、この新しいヘッダーファイルをC++ソースファイルのプリコンパイル済みヘッダーとして使用します。

0

ここでエラーを調べたところ、このスレッドが見つかりました。しかし、試行錯誤の結果、私は最近、すべてのファイルを保存していないという問題があることがわかりました。 Visual Studioは、一緒に添付されたファイルの保存日時に少し厄介なようです。

すべてのソースファイルでCtrl + Sキーを押して問題を解決しました。

関連する問題