srlua makefile错误lua.h没有这样的文件或目录

我试图用srlua编译我的lua文件到可执行文件,但是我遇到了一个问题。

安东尼@ anthony-linux:〜/ Downloads / srlua $ make
 gcc -I / tmp / lhf / lua-5.2.0 / src -ansi -pedantic -Wall -Wextra -O2 -c -o srlua.o srlua.c
 srlua.c:19:17:致命错误:lua.h:没有这样的文件或目录
编译终止。
 make:*** [srlua.o]错误1

我正在运行Linux 64位(Ubuntu的)

编辑:我试着改变我的生成文件的设置,但现在我得到这个

 anthony @ anthony-linux:〜/ Downloads / srlua $ sudo make
 gcc -I / usr / local / include -ansi -pedantic -Wall -Wextra -O2 -c -o srlua.o srlua.c
 srlua.c:19:17:致命错误:lua.h:没有这样的文件或目录
编译终止。
 make:*** [srlua.o]错误1

我怀疑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在哪里找到它们。

我已经用Lua 5.1在Windows上成功构建和使用了srlua,但是在Ubuntu上不需要尝试这个,所以我不能更具体。

更新:

从你的pastebin,试试这个:

 # these will probably work if Lua has been installed globally 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是不可能的。 我能够编制一个最简单的“你好世界”…

 #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
你好,Lua 5.1
 $

也许你应该做一个类似的小例子工作,然后回到调整srlua makefile。