Boost在VS2005上会导致编译速度明显变慢。

8

我最近在我的C++项目中开始使用Boost,发现编译前有相当长的延迟(当我按重新构建时,我必须等待5分钟才能开始编译)。

我运行了Filemon,结果显示在整个等待期间,Visual Studio处于空闲状态,而devenv.exe正在遍历Boost包含目录。

有什么方法可以加快编译速度,而不用从项目中删除Boost吗?

谢谢。


1
5分钟似乎有点过长,所以可能不仅仅是VS在处理头文件。但你尝试过预编译头文件吗?Visual C++的预编译头文件并不是很好,但是... - Cheers and hth. - Alf
5分钟是非常过长的时间。这可能看起来像一个显而易见的评论,但是,你编译的机器的内存是多少?我认为还有其他原因导致了这个问题,而且我不认为是boost引起的。 - Moo-Juice
5
devenv.exe 是 Visual Studio 的集成开发环境(IDE)进程。除了 IntelliSense 所需的扫描和解析之外,它实际上并不编译任何 C++ 代码。编译和链接由 cl.exelink.exe 和它们的相关程序执行。尝试禁用 IntelliSense;这会有所帮助吗?(IntelliSense 在 Visual Studio 2008 中更好,在 Visual Studio 2010 中得到了大幅改进)。 - James McNellis
1
我该如何将它添加到预编译头文件中?只需要在stdafx.h中包含boost头文件吗? - Andrew
可能是Visual Studio 2005编译加速的重复问题。 - Steve Townsend
显示剩余6条评论
1个回答

4
您可能已经将boost包含目录直接添加到“项目设置>C/C++>常规>附加包含目录”中。Visual Studio会跟踪项目依赖关系,以在发生更改时提供最小的重新编译(这与IntelliSense无关)。
如果是这样,请将boost包含文件移动到VS包含路径中 - 这是它们所属的位置,当您编译项目时,VS不会检查它们。
如果没有这样做,可能在项目设置中存在与boost目录的其他链接。

“VS包含路径” - 它在IDE中确切的位置在哪里? - Andrew
1
它位于“工具”->“选项”->“项目和解决方案”->“VC++目录”下。您需要设置“包含文件”和“库文件”以支持boost。 - Vladimir Sinenko
对于VS2012,它位于项目属性->“配置属性”->“VC++目录”->“包含目录”下。 - Mark Lakata

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接