Экземпляры Luabind и class

#c #lua #luabind

#c #lua #luabind

Вопрос:

Я работаю над игровым движком, управляемым данными, и я стремлюсь интегрировать lua.

Похоже, у меня возникла проблема с привязкой экземпляров текущего класса компонентов к метатаблице lua с использованием luabind.

Вот проблемный код:

 void BaseScriptComponent::createScriptObject()
{
    LuaStateManager* pStateManager = LuaStateManager::get();
    assert(pStateManager != nullptr);
    assert(luabind::type(m_scriptObject) != LUA_TNIL);

    // Get meta table
    luabind::object metaTableObject = pStateManager->getGlobalVars()[METATABLE_NAME];
    assert(luabind::type(metaTableObject) != LUA_TNIL);

    // Set __object to reference this class instance. 
    // Compilation failure due to this
    metaTableObject["__object"] = this;
    // Set meta table
    luabind::setmetatable(m_scriptObject, metaTableObject);
}
  

Ошибка компилятора:

 undefined reference to `bool luabind::get_back_reference<BaseScriptComponent*>(lua_State*, BaseScriptComponent* constamp;)' 
  

Любая помощь приветствуется.

Комментарии:

1. Не могли бы вы показать код регистра вашего модуля / класса? Также я думаю, что ваш код очень необычен для регистрации объектов с помощью luabind, или, по крайней мере, я не совсем уверен, чего вы пытаетесь достичь с помощью этого кода.