Огромное время компиляции при линковке с библиотекой через boost::serialization

Привет и спасибо за чтение.

У меня есть динамическая библиотека, использующая boost::serialization с примерно 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, чтобы избежать определения экспорта повышения?

Заранее спасибо,

Роланд


person rkohser    schedule 27.02.2012    source источник
comment
У нас точно такая же проблема. Вы нашли решение?   -  person cdunn2001    schedule 24.10.2014


Ответы (1)


Просмотр примера кода, вероятно, поможет, но...

Можете ли вы легко удалить стандартный код из "classe*.h"?

Использовать защиту включения для предотвращения многократного включения одного и того же файла?

// 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---

Всего несколько предложений...

person JimR    schedule 28.02.2012
comment
двойные подчеркивания не допускаются. - person Sebastian Mach; 28.02.2012
comment
Я уже использую include guards, и у меня есть общий базовый класс для всех файлов classx, чтобы избежать общего кода. Спасибо - person rkohser; 29.02.2012