我有一些使用boost singleton的课程。它从自己的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()'
是的,从 temp 中调用Ogre的函数。
答案 0 :(得分:0)
这些错误表明您没有正确连接Ogre。
如果Second
未引用First
时它们消失,那是因为First
未被其他任何地方引用/使用。
您是否尝试在代码中使用First
来检查错误是否仍然存在?