您如何减少编译时间以及Visual C ++项目(本机C ++)的链接时间?
您如何减少编译时间以及VC ++项目(本机C ++)的链接时间?
请指定每个建议是否适用于调试,发布或两者。
这听起来很明显,但我们尽可能地使用前向声明,即使它需要写出类型为/的长名称空间名称:
// Forward declaration stuff
namespace plotter { namespace logic { class Plotter; } }
// Real stuff
namespace plotter {
namespace samples {
class Window {
logic::Plotter * mPlotter;
// ...
};
}
}
这大大减少了编译其他编译器的时间。 确实它适用于所有配置:)
使用Handle / Body模式(有时也称为“pimpl”,“适配器”,“装饰器”,“桥”或“包装器”)。 通过将你的类的实现隔离到你的.cpp文件中,它们只需要编译一次。 大多数更改不需要更改头文件,因此它意味着您可以进行相当大的更改,而只需要重新编译一个文件。 由于编译时间减少,这也鼓励重构和编写注释和单元测试。 此外,您可以自动分离接口和实现的关注点,以便简化代码的界面。
如果您的构建过程中必须包含大部分.cpp文件中包含的大型复杂头文件,而且这些头文件不会经常更改,则可以对其进行预编译。 在具有典型配置的Visual C ++项目中,这只是将它们包含在stdafx.h中的问题。 这个特性有它的诋毁者,但充分利用模板的库往往在头文件中有很多东西,预编译头文件是在这种情况下加速构建的最简单方法。
链接地址: http://www.djcxy.com/p/85409.html上一篇: How do YOU reduce compile time, and linking time for Visual C++ projects (native C++)?