Очень простой вопрос, который я думаю:
Код C ++, вызывающий lua, выглядит следующим образом:
lua_State* m_L;
m_L = lua_open();
luabind::open(m_L);
luaL_dofile(m_L, "test.lua");
try {
luabind::call_function<void>(m_L, "main");
} catch (luabind::error& e) {
std::string error = lua_tostring(e.state(), -1);
std::cout << error << std::endl;
}
lua_close(m_L);
Теперь test.lua имеет следующее содержимое:
function main()
print "1"
end
При исполнении я получаю ошибку:
test.lua:2: attempt to call global 'print' (a nil value)
В чем проблема? Это как-то связано со средой? Я думал, что функции, такие как печать, определены в глобальной среде. Почему тогда его не нашли?
Большое спасибо.