2017-05-15 63 views
0

我有一個跨平臺的項目,在Windows上,我想使用預編譯頭文件(在這種情況下它非常重要)和Linux我不想要它。所以,我想有這樣的事情:在ifdef中包含預編譯頭文件

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

當我在Windows上構建我得到這個惱人的錯誤,聲稱:

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 build中,但在Linux中不使用。 –

回答

0

我已經有這個問題,對我來說,這兩個選項之一爲我工作。

1)也許如果你在文件開頭添加#pragma once(甚至在#ifndef _WIN32頭文件保護之前)。

2)或者你可以在你的頭文件添加此skecth:

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

這將保證你的頭將只是一次編譯此警告將會消失(至少對我來說)。

希望它的作品!