#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, или, по крайней мере, я не совсем уверен, чего вы пытаетесь достичь с помощью этого кода.