2010-06-05 4 views
0

J'ai une classe qui utilise boost singleton. Il appelle une fonction de sa propre bibliothèque C++. Cette bibliothèque est écrite dans le fichier make en tant que dépendance. Maintenant, j'ai une autre classe singleton et elle devrait appeler la première classe singleton. Après ce code j'ai eu des erreurs de liens sur les références non définies pour les fonctions qui sont utilisées dans le premier singleton.Boost singleton trouble

Lorsque je supprime l'appel de la première classe singleton à partir de la seconde, les erreurs sont supprimées. Peut-être qu'il y a quelque chose de mal?

class First : public boost::singleton<First> 
{ 
    void temp() { /* Calling function from own library */ } 
}; 

class Second : public boost:singleton<Second> 
{ 
    const First &someInstance() const { return First::get_const_instance(); } 
}; 

erreurs de fin:

In function `First::temp()': 
undefined reference to `Ogre::WindowEventUtilities::messagePump()' 
undefined reference to `Ogre::Root::renderOneFrame()' 

Oui, il appelle les fonctions de Ogre température un.

+1

Peut-être qu'il y a. Mais à moins de publier du code et les messages d'erreur que vous recevez, il est peu probable que nous puissions identifier le problème. –

+0

@ neil-butterworth l'a fait. – Ockonal

Répondre

0

Ces erreurs indiquent que vous ne vous connectez pas correctement avec Ogre.

S'ils disparaissent lorsque Second ne fait pas référence à First, c'est parce que First n'est référencé/utilisé nulle part ailleurs.

Avez-vous essayé d'utiliser First dans votre code pour vérifier si les erreurs demeurent?