2017-05-15 1 views
0

私はクロスプラットフォームのプロジェクトを持っていますが、Windows上にあります。プリコンパイル済みヘッダー(この場合は本当に重要です)とLinuxを使用したいと思います。だから私はこのような何かを持っているしたいと思います:私はWindows上でビルドする場合ifdefにプリコンパイルされたヘッダーを含める

#ifdef _WIN32 
#include "precompiled.h" 
#endif //#ifdef WIN32 

私は主張し、この迷惑なエラーが発生します。

PCH warning: header stop cannot be in a macro or #if block. An intellisense pch was not generated 

は、この問題を修正するための任意の回避策はありますか?

ありがとうございます。

+0

わかりませんが、警告でもエラーでもないと思われます – user463035818

+0

なぜWindows上で(本当に重要なのですが)Linuxではないのですか?奇妙な。 –

+0

これはもう少し長い話ですが、実際にはこのプリコンパイル済みヘッダーがWindowsビルドに含まれている必要がありますが、Linuxでは使用されていません。 –

答えて

0

私は既にこの問題を抱えています。私にとっては、これらの2つのオプションのいずれかが私のために働いていました。

1)ファイルの先頭に#ifndef _WIN32ヘッダーガードの前にも#pragma onceを追加したほうがよいでしょう。

2)またはあなたのヘッダファイルにこのskecthを追加することができます。

#ifndef MYHEADER_H 
#define MYHEADER_H 
... contents of myheader.h 
#endif /* MYHEADER_H */ 

これはあなたのヘッダーは一度だけコンパイルされることを保証し、この警告は、(少なくとも)私のためdisapearます。

うまくいきますように!

関連する問題