我认为使用sudo
不会有帮助。问题在于GCC找不到lua.h
,这意味着您没有告诉它在哪里找到编译链接到Lua核心的程序所需的开发人员文件。您可能需要确定一个文件夹,例如/usr/local/lua/include
。
还有可能您已安装了Lua可执行包,但未安装开发人员包。如果是这样,您需要查找并安装该包。像以下命令:
$ apt-get install liblua5.1-0-dev
就可以安装Lua 5.1的开发人员包。
如果您正在从源代码构建Lua 5.2,则已经拥有所需的所有文件,只需要告诉srlua的makefile在哪里找到它们。
我已成功在Windows上使用Lua 5.1构建和使用srlua,但尚未在Ubuntu上尝试过,因此无法更具体。
更新:
从您的pastebin中尝试以下操作:
LUA= /usr/include/lua5.1
LUAINC= /usr/include/lua5.1
LUALIB= /usr/lib/lua/5.1
LUABIN= /usr/bin
在$(LUAINC)
的定义中存在打字错误。 您需要找到liblua.a并在$(LUALIB)
的定义中命名正确的文件夹。 我的Ubuntu机器上没有安装lua dev软件包,因此我不确定它放在哪里。
更新2:您越来越接近了,因为您已经通过编译器配置进入链接器配置问题。
在我的Ubuntu机器上,Lua库似乎是/usr/lib/liblua5.1.a
,并且没有名为liblua.a
的文件。 对于我来说,-llua
无法工作。 我能够编译一个最简单的“hello world”...
#include "lua.h"
#include "lauxlib.h"
int main(int argc, char **argv)
{
lua_State *L = luaL_newstate();
luaL_openlibs(L);
luaL_dostring(L, "print('hello, '.._VERSION)");
return 0;
}
使用以下命令:
$ gcc -I/usr/include/lua5.1 -o hello hello.c -llua5.1 -lm
$ ./hello
hello, Lua 5.1
$
也许你应该先制作一个类似的最小示例来工作,然后再返回调整srlua
makefile。