使用boost::序列化与库链接时需要大量编译时间
Huge compilation time when linking with library using boost::serialization
您好,感谢您的阅读。
我有一个使用boost::序列化的动态库,包含大约200个不同的类。我在程序中使用了这个库,这要归功于标题messageExports.h,它看起来像这样:
#include "classe1.h"
//...
#include "classe200.h"
BOOST_CLASS_EXPORT(ns::classe1);
//...
BOOST_CLASS_EXPORT(ns::classe200);
但是包括messaeExports.h在内的文件需要很长的时间来编译,每次我修改它时都需要很长时间。由于我使用Qt和qmake,我尝试了PRECOMPILED_HEADERS方法,但它比不使用它花费了更多的时间,而且qmake似乎将预编译的头添加到了每个obj文件中。
你知道我该如何减少编译时间吗?是否可以重新排列messageExport.h标头以避免boost导出定义?
提前谢谢你,
罗兰
查看示例代码可能会有所帮助,但是。。。
你能很容易地从"classe*.h"中删除常见的样板代码吗?
是否使用include保护来防止同一文件的多个include?
// File: ---classe1.h---
#ifndef __CLASSE1_H_INCLUDED
#define __CLASSE1_H_INCLUDED
// Stuff goes here
// Here
// Here (ad naseum)
#endif // __CLASSE1_H_INCLUDED
// End Of File: ---classe1.h---
只是一些建议。。。
相关文章:
- 使用简单类型列表实现的指数编译时间.为什么
- 在已经使用Git的情况下减少编译时间
- C++常量数组的编译时间较长
- 编译时间文本到数字转换 (atoi)
- 在C++中执行 N 阶乘编译时间的 3 种不同/相同方法
- DLLexport 类模板实例(专用化),减少了仅标头模板库的编译时间
- 替换枚举以最大化编译时间检查的最佳方法
- 不同C++功能的编译时间
- 在预编译标头中实例化模板会缩短编译时间吗?
- 使用 SCons 提取每个编译单元的编译时间
- 将 lambda 函数转换为另一个编译单元中的普通函数会缩短编译时间吗?
- std :: Invoke_result_t编译时间语法错误
- 模板;constexpr;编译时间
- 如何实现声明功能-C 11,编译时间
- 如何减少编译时间:在包含未触及的头文件的情况下
- C++编译时间类型确定
- 特征:返回对具有编译时间尺寸检查的矩阵块的引用
- 在编译时间定义多个派生类
- 在编译时间创建查找表
- C 函数在编译时间返回类型