VC++ "Exclude Directories"项目设置实际上有什么作用?

What does the VC++ "Exclude Directories" project setting actually do?

本文关键字:什么 实际上 作用 设置 Exclude Directories 项目 VC++      更新时间:2023-10-16

我正在尝试使用新的VS2015预编译头重构工具。当我启动它时,它会弹出一条消息:

为了改进推荐,将第三方库路径添加到vc++目录下的"排除目录"属性(在项目中)属性对话框)。

如果我在这里列出一个目录,我不清楚它被排除在什么之外。MSDN帮助文本只能说:

检查构建依赖项时不搜索的目录

这有一点帮助,但我仍然不完全确定如果我在这里列出一些东西,我将获得/失去什么功能。例如,boost(来自pch工具的消息似乎是建议的)。有人能确切地说一下这个设置的作用吗?

一般的想法是,每次点击'Build'时,IDE(或者更具体地说是msbuild)都必须检查所有的依赖项,以查看哪些cpp文件需要重新构建。如果你有一个大项目和许多头(boost是一个很好的例子),那么这可能需要检查数千个头(因为每个头也需要检查其依赖关系)。

如果你有一个第三方库,比如boost,它只更新很少,那么你可以将路径添加到Exclude框中,这样依赖检查器就不会检查这些库了。然而,如果你在某个时候更新了库,或者对它做了一个小的改变,那么你将不得不手动重建所有依赖于它的项目,因为你已经告诉构建系统不要为你做这些。

在实践中,我从来没有发现这是一个问题,即使有几个MLOC项目和一个boost安装,特别是如果你正在构建一个SSD。如果您使用的是较旧的硬件,那么它可能值得使用,但我认为当您不可避免地忘记重建依赖的项目时,它可能会导致问题。