Повысить одиночную проблему - PullRequest
0 голосов
/ 05 июня 2010

У меня есть класс, использующий буст синглтон. Он вызывает некоторую функцию из собственной библиотеки c ++. Эта библиотека написана в файле make как зависимость. Теперь у меня есть еще один синглтон-класс, и он должен называться первым синглтон-классом. После этого кода я получил ошибку компоновщика о неопределенных ссылках для функций, которые используются в первом синглтоне.

Когда я удаляю вызов первого одноэлементного класса из второго, ошибки удаляются. Может быть, что-то не так?

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(); }
};

Конечные ошибки:

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

Да, функции Ogre вызываются из temp one.

1 Ответ

0 голосов
/ 05 июня 2010

Эти ошибки указывают на то, что вы неправильно связываетесь с Ogre.

Если они исчезают, когда Second не ссылается на First, это потому, что First не используется и не используется нигде.

Вы пытались использовать First в своем коде, чтобы проверить, остались ли ошибки?

...