2013-04-13 72 views
3

我混合了C++項目(託管和非託管)。非託管使用了很多庫,如boost。它們都包含在stdafx.h文件中。我想要有兩個單獨的預編譯頭文件,一個是託管的(stdafx.h),一個是非託管的(stdafxManaged.h)。在爲stdasfManaged.cpp如何使用兩個預編譯頭文件。一個用於託管,一個用於非託管代碼。 xxx.pch不是有效的預編譯頭文件

error C2855: command-line option '/clr' inconsistent with precompiled header

所以我把公共語言運行庫支持(/ CLR),並收到以下錯誤: 如何過,當我包括我的託管代碼的stdafxManaged.h我得到一個錯誤說:

error C1852: 'Debug\xxx.pch' is not a valid precompiled header file

其中xxx是項目的名稱,它顯示爲項目中所有非託管的.cpp文件的錯誤。

有誰知道如何解決這個錯誤或有任何指向教程的鏈接,它告訴你如何爲混合代碼設置多個預編譯頭文件?

+1

據我所知,不支持多個預編譯頭文件。 –

+0

如果是這種情況,那麼我會非常惱火,但我想它會解釋.pch文件的衝突。你知道我在哪裏可以找到更多細節嗎? –

回答

1

這實際上是可能的。確保.cpp文件的/ clr處於活動狀態,並且預編譯頭文件和預編譯頭輸出文件設置與常規stdafx.h和$(TargetName).pch不同。