質問

.cppファイルに2つのプラットフォーム固有の stdafx.h ファイルを含めようとしていますが、#ifdefを実行しようとするとコンパイラが不満を感じます。

#ifdef _WIN32
#include "stdafx.h"
#elif _MAC
#include "MAC/stdafx.h"
#endif

Macコードでstdafx.hを使用しているのはなぜかと思うかもしれませんが、現時点では重要ではありません:)。

Windowsでコードをコンパイルしようとすると、致命的なエラーC1018 を受け取ります。同じファイルで#ifdefを使用して他のヘッダーファイルを囲むことを試みましたが、コンパイラは満足していました。したがって、Windowsはstdafx.hが#ifdefされることを好まないように見えます。または、Windowsは #include stdafx.h のみを許可します ファイルの最初の行になります。

だから私の質問は、なぜですか?

キャット

役に立ちましたか?

解決

コンパイラにプリコンパイル済みヘッダーが含まれる場合、基本的に「忘れる」ヘッダーの前にあるもの。したがって、#elifは#ifと一致しなくなります。

他のヒント

これは、プリコンパイル済みヘッダーがオンになっているためです。オフにすると問題ありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top