使用boost::序列化与库链接时需要大量编译时间

Huge compilation time when linking with library using boost::serialization

本文关键字:编译 时间 链接 序列化 boost 使用      更新时间:2023-10-16

您好,感谢您的阅读。

我有一个使用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---

只是一些建议。。。