繁体   English   中英

预编译 header 和 Visual Studio

[英]Precompiled header and Visual Studio

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

谢谢你。

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

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

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

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

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

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

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

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

#include "StdAfx.h"

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM