我遇到了这个问题,通常你都会问我原因,所以我先解释一下,这样你就可以回答我,我正在研究一个至少有500.000行的来源,但现在是我的一个来源我刚创建的(.cpp)文件不能添加预编译的头文件,在这种情况下是“StdAfx.h”,我必须不编辑项目预编译的头文件设置,显然如果我尝试编译我的没有在新文件中包含stdafx的项目我将用C1010粉碎,我试过的是这个
的StdAfx.h:
#ifndef __ABC123
//do all your includes
#endif
MYFILE.CPP:
#define __ABC123
#include "StdAfx.h"
#undef __ABC123
虽然这不起作用,stdafx.h仍然包含文件。为什么我不能将stdafx.h包含在这个.cpp文件中是因为stdafx上的一些包含与此cpp包含的大量冲突。我无法修改stdafx包含因为数千个其他文件使用它,如何处理这个?
答案 0 :(得分:2)
不可能。你在这里画了一个角落。让我'splain。
PCH旨在跨整个项目使用。每个翻译单元都应包括PCH。
可以覆盖此行为,但只能通过相关翻译单元的项目设置进行覆盖。您已经说过,您不能编辑项目设置,因此无法逃脱。
如果你确实需要这个并且没有出路,我会考虑采取如此激烈的步骤,例如将非PCH代码移入其自己的项目中。