3

有没有办法设置 Visual Studio 解决方案参数,以便它只创建预编译的标头而不构建整个解决方案。具体来说,它是一个巨大的 C++ 解决方案,本身包含许多项目。

谢谢你。

4

3 回答 3

10

只选择 pch creator 源文件(通常是 stdafx.cpp),然后编译它(Ctrl-F7,或右键单击它并选择“编译”)

更多信息,因为它似乎不适合你:

在每个使用预编译头文件的项目中,都有一个源文件用于创建 pch 文件,其余的仅使用pch 文件。这个源文件通常只包含一行:

#include "StdAfx.h"

“Stdafx.h”是 Visual C++ 中默认的预编译头文件名,它可以是你的其他名称。如果您自己编译“StdAfx.cpp”,则会生成一个名为“Your_Project_Name.pch”的文件(同样,这只是默认设置)。您应该在中间目录中看到它,与所有 obj 文件所在的目录相同。这是预编译的头文件。如果你像我说的那样选择了“编译”而不是“构建”,那么不会编译其他文件,也不会发生链接。

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

于 2011-07-11T13:28:47.150 回答
10

是一篇描述好处以及如何设置它的文章。如果您有更大的项目,那么点击几下和额外的磁盘空间绝对值得。

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

这篇文章没有提到它,但是你会从不包含 stdafx.h 的来源中得到错误。您可以选择解决此错误:您要么添加它,要么从预编译过程中排除源。要排除源文件:

  • 在解决方案资源管理器中选择源文件;是的,您可以一次选择更多,
  • 右键单击突出显示的源文件,
  • 从弹出菜单中单击属性,
  • 从顶部的组合框中选择“所有配置”,
  • 在 C-C++ 配置下单击“预编译头文件”,
  • 在右侧选择“不使用预编译头文件”,
  • 点击申请,
  • 点击确定。

从这里开始在几秒钟内享受您的新构建(第一次构建需要更长的时间)。

于 2013-04-04T22:48:13.280 回答
2

如果您在项目中右键单击除 stdafx.cpp 之外的任何 Cpp 文件并将从构建中排除设置为是,它将仅生成预编译头文件。

您可以通过命令行获得相同的结果,或者如果您创建仅包含您的 stdafx.cpp 的新项目

于 2011-07-11T13:31:07.860 回答