如何使用两个预编译的头文件.一个用于托管代码,另一个用于非托管代码.xxx.PCH不是一个有效的预编译头文件

How to use two precompiled headers. One for managed and one for unmanaged code. xxx.pch is not a valid precompiled header file

本文关键字:一个 用于 文件 编译 xxx PCH 有效 非托管代码 两个 何使用 托管代码      更新时间:2023-10-16

我混合了c++项目(托管和非托管)。非托管使用了很多库,比如boost。它们都包含在stdafx.h文件中。我试图有两个单独的预编译头,一个管理(stdafx.h)和一个非管理(stdafxManaged.h)。然而,当我从托管代码中包含stdafxManaged.h时,我得到一个错误说:

错误C2855:命令行选项'/clr'与预编译头文件不一致

所以我为stdasfManaged.cpp打开公共语言运行时支持(/clr),并得到以下错误:

错误C1852: 'Debugxxx. 'Pch '不是一个有效的预编译头文件

其中xxx是项目的名称,它显示为项目中所有非托管的.cpp文件的错误。

有没有人知道如何修复这个错误或有任何链接到教程,告诉你如何设置多个预编译头混合代码?

这实际上是可能的。确保/clr对.cpp文件是激活的,并且预编译头文件和预编译头输出文件的设置都不同于常规的stdafx.h和$(TargetName).pch.

相关文章: