Tôi sẽ viết chương trình bằng cách sử dụng AI, vì vậy tôi đang cố gắng làm cho nó hoạt động cùng nhau. Nhưng khi tôi cố gắng tải một script lua từ tập tin cpp của tôi, tôi đã có thông báo lỗi này:Kịch bản lệnh Lua với C++: cố gắng lập chỉ mục toàn cầu 'io' (giá trị 0il)
-- toto.lua:1: attempt to index global 'io' (a nil value)
Đây là kịch bản lua tôi:
io.write("Running ", _VERSION, "\n")
Và đây là tập tin cpp của tôi :
void report_errors(lua_State *L, int status)
{
if (status!=0) {
std::cerr << "-- " << lua_tostring(L, -1) << std::endl;
lua_pop(L, 1); // remove error message
}
}
int main(int argc, char** argv)
{
for (int n=1; n<argc; ++n) {
const char* file = argv[n];
lua_State *L = luaL_newstate();
luaopen_io(L); // provides io.*
luaopen_base(L);
luaopen_table(L);
luaopen_string(L);
luaopen_math(L);
std::cerr << "-- Loading file: " << file << std::endl;
int s = luaL_loadfile(L, file);
if (s==0) {
s = lua_pcall(L, 0, LUA_MULTRET, 0);
}
report_errors(L, s);
lua_close(L);
std::cerr << std::endl;
}
return 0;
}
Cảm ơn rất nhiều.
Mã tạo trạng thái Lua riêng cho mỗi tệp mà nó chạy. Điều này sẽ ngăn các tệp khác nhau giao tiếp. Điều này có thể không phải là những gì bạn muốn. – lhf