2011-07-11 112 views
1

有没有办法设置Visual Studio解决方案参数,因此它只是创建预编译头文件而不构建整个解决方案。 具体而言,它是一个巨大的C++解决方案,其中包含许多项目。预编译头文件和Visual Studio

谢谢。

+0

我不明白问题 –

+0

对不起,也许我一直困惑。我有VS项目,我想在该项目上运行构建,因此VS只是创建所有cpp文件的预编译头文件,而不是构建项目。 –

+0

你想编译所有的cpp文件到目标文件,但不执行链接? – qid

回答

8

只能选择PCH创源文件(通常stdafx.cpp),并编译快捷键(Ctrl-F7,或右键单击它并选择“编译”)

,因为它更多的信息似乎并不要为你工作:

在使用预编译的头每一个项目,有一个用于创建PCH文件一个源文件,剩下的只有使用 PCH文件。这个源文件通常只包含一个行:

#include "StdAfx.h" 

“的Stdafx.h”是在Visual C默认的预编译的头文件名++,它可能是东西给你。如果您自己编译“StdAfx.cpp”,则会生成名为“Your_Project_Name.pch”的文件(同样,这只是默认设置)。您应该在中间目录中看到它,这是所有obj文件所在的目录。这是预编译的头文件。如果你确实像我说的那样,选择'编译'而不是'编译',那么不会编译其他文件,也不会进行链接。

如果仍然不能解决您的问题,那么我不知道您在问什么。

+0

我不认为这会解决我的问题。我只需要创建所有cpp文件的预编译头文件,而无需执行构建或链接操作。对不起,如果我没有正确描述我的问题。不管怎么说,还是要谢谢你。 –

+0

如果这不能解决您的问题,那么您仍*尚未正确描述您的问题。我在这里描述的解决方案正是您如何创建预编译头,而无需构建或链接。 –

+0

非常感谢这个解释。最后,事实证明,我实际上需要预处理文件,而不是预编译头文件。对不起,我很愚蠢。 –

2

如果从项目中右键单击除stdafx.cpp以外的任何Cpp文件,并将“排除”构建设置为“是”,则只会生成预编译头。

您可以通过命令行实现同样的结果,或者如果你创建一个仅包含您的stdafx.cpp

9

这里的an article描述好处,以及如何设置它的新项目。 如果你有更大的项目,绝对值得点击几次和额外的磁盘空间。

该文章说,您需要将stdafx.h添加到所有来源和标题;这是不正确的。添加到源代码就足够了 - 确保它是第一行,尽管它之前的所有内容都将被忽略。

该文章没有提到它,但是您将从不包含stdafx.h的源获取错误。您可以选择解决此错误:您可以添加它,也可以从预编译过程中排除源代码。 要排除源文件: - 在解决方案资源管理器中选择源文件;是的,您可以一次选择多个, - 右键单击​​突出显示的源文件, - 从弹出菜单中点击属性, - 从顶部组合框中选择“所有配置”, - 在C-C++配置点击“预编译头文件”, - 在右侧选择“不使用预编译头文件”, - 点击应用, - 点击确定。

从这里开始几秒钟内即可享受您的新版本(第一个版本需要更长的时间)。

+1

+1“排除预编译过程中的源代码”(非常有用!) – nergeia