VC++ "Exclude Directories"项目设置实际上有什么作用?
What does the VC++ "Exclude Directories" project setting actually do?
我正在尝试使用新的VS2015预编译头重构工具。当我启动它时,它会弹出一条消息:
为了改进推荐,将第三方库路径添加到vc++目录下的"排除目录"属性(在项目中)属性对话框)。
如果我在这里列出一个目录,我不清楚它被排除在什么之外。MSDN帮助文本只能说:
检查构建依赖项时不搜索的目录
这有一点帮助,但我仍然不完全确定如果我在这里列出一些东西,我将获得/失去什么功能。例如,boost(来自pch工具的消息似乎是建议的)。有人能确切地说一下这个设置的作用吗?
一般的想法是,每次点击'Build'时,IDE(或者更具体地说是msbuild)都必须检查所有的依赖项,以查看哪些cpp文件需要重新构建。如果你有一个大项目和许多头(boost是一个很好的例子),那么这可能需要检查数千个头(因为每个头也需要检查其依赖关系)。
如果你有一个第三方库,比如boost,它只更新很少,那么你可以将路径添加到Exclude框中,这样依赖检查器就不会检查这些库了。然而,如果你在某个时候更新了库,或者对它做了一个小的改变,那么你将不得不手动重建所有依赖于它的项目,因为你已经告诉构建系统不要为你做这些。
在实践中,我从来没有发现这是一个问题,即使有几个MLOC项目和一个boost安装,特别是如果你正在构建一个SSD。如果您使用的是较旧的硬件,那么它可能值得使用,但我认为当您不可避免地忘记重建依赖的项目时,它可能会导致问题。
相关文章:
- "delete"在 C++ 中实际上做了什么?
- 您好,我实际上想了解以下代码.有人可以详细说明代码它到底在做什么吗?为什么它会在第 31 行崩溃
- *(int*)&data[18]在这段代码中实际上做了什么?
- mOffsetMatrix在Assimp中实际上做了什么?
- 当我们在 C++ 中说"initialize the object"时,它实际上意味着什么?
- C++ 中向量的 .size() 实际上有什么作用?
- 'return *this'实际上做了什么?
- CPACK_DEB_PACKAGE_COMPONENT实际上做了什么
- 声明是否无效()合法,它实际上是什么?
- 在 IUnknown 中添加和发布,它们实际上做了什么?
- 实际上,什么是负数的模
- vk::D eviceQueueCreateFlags() 实际上做了什么?
- 什么时候 constexpr 实际上不是 constexpr
- C++:去引用实际上在做什么
- boost::asio::io_service::run() 实际上做了什么
- C 如果实际上是继承了类,则内部发生了什么
- 无法理解C++中的枚举,它们实际上是什么?
- 当调用带有警告"control reaches end of non-void function"的函数时,(实际上)会发生什么?
- 实际上什么返回类型有一个新的
- glutswapbuffers实际上做了什么