每当我运行我的应用程序时,我都会遇到这个错误。错误是:
loop or previous error loading module 'socket'
。
导致此错误的代码是:
socket = require("socket")
.
此错误发生在第一个lua_pcall
. 这是调用它的函数:
void startTerminal(int port, char host[80])
{
lua_State *L = lua_open();
/* Open Lua Library */
luaL_openlibs(L);
/* Choose the lua file that will run */
if(luaL_loadfile(L, "socket.lua")) {
lfatal(L, "luaL_loadfile() failed");
}
/* Start lua file */
if(lua_pcall(L, 0, 0, 0)) {
lfatal(L, "lua_pcall()");
}
/* Get connect function */
lua_getglobal(L, "connect");
if(!lua_isfunction(L, -1)) {
lua_pop(L, 1);
lfatal(L, "lua_isfunction() failed");
}
/* Setup arguments */
lua_pushnumber(L, port);
lua_pushstring(L, host);
/* Call the lua function */
if(lua_pcall(L, 2, 2, 0)) {
lfatal(L, "lua_pcall() failed");
}
/* Print out results */
printf("%s", lua_tostring(L, -1));
printf("%s", lua_tostring(L, -1));
lua_close(L);
}
这是我编译代码的方式:
gcc -Wall -o terminal attacker.c -I/usr/include/lua5.1 -llua5.1 -lm
我在编译期间是否缺少任何开关或者我是否缺少库?
注意:编译器不会抛出任何错误并且可以干净地编译。在其他不包含 C 的 Lua 应用程序中,我对require("socket")
.
谢谢