Добрый день! Есть некий класс синглтона:
C++ (Qt)
/** Singleton pattern with eternal object. The order of using in derives same as in the CSppRefsSingleton. */
template < typename T > class LongLiveSingleton
{
public:
/** @Returns the instance of object. Object will be constructed in the first call of this method.*/
static T& getInstance( void )
{
static T theSingleInstance; // //class T always has a default constructor
return theSingleInstance;
}
protected:
LongLiveSingleton( void ) {}
virtual ~LongLiveSingleton( void ) {}
private:
LongLiveSingleton( const LongLiveSingleton& ) {}
LongLiveSingleton& operator = ( const LongLiveSingleton& ) { return *this; }
};
от него наследуем класс:
C++ (Qt)
class BASE_LIB_EXPORT XmlBuilder : public LongLiveSingleton < XmlBuilder >
{
protected:
XmlBuilder( void ) {}
~XmlBuilder( void ) {}
};
который расположен в некой т.н. "базовой" библиотеке и соответственно является экспортируемым:
C++ (Qt)
#ifdef BASE_LIB
# define BASE_LIB_EXPORT Q_DECL_EXPORT
#else
# define BASE_LIB_EXPORT Q_DECL_IMPORT
#endif
Данная "базовая" библиотека юзается другими библиотеками а также основным (exe) исполнимым модулем при помощи неявной загрузки. При сборке в MSVC (2010) всё ок, конструктор и деструктор XmlBuilder вызывается ОДИН раз, при сборке в Qt Creator (minGW) возникают проблемы - вызовы идут при загрузке каждой библиотеки, т.е. синглтон вроде уже и не синглтон совсем получается. Какое лекарство может помочь сей беде?