Linux srlua makefile错误lua.h没有这样的文件或目录
我试图使用Linux srlua makefile错误lua.h没有这样的文件或目录,linux,compiler-errors,lua,makefile,Linux,Compiler Errors,Lua,Makefile,我试图使用srlua将我的lua文件编译成可执行文件,但遇到了一个问题 anthony@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: fatal error: lua.h: No such file or directory compilation termina
srlua
将我的lua文件编译成可执行文件,但遇到了一个问题
anthony@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: fatal error: lua.h: No such file or directory
compilation terminated.
make: *** [srlua.o] Error 1
anthony@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
我运行的是64位linux(ubuntu)
编辑:我试图更改我的makefile的设置,但现在我得到了这个
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: fatal error: lua.h: No such file or directory
compilation terminated.
make: *** [srlua.o] Error 1
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
您在$(LUAINC)
的定义中有输入错误。您需要找到liblua.a并在$(LUALIB)
的定义中命名正确的文件夹。我没有在我方便的Ubuntu盒上安装lua dev软件包,所以我不确定它放在哪里了
更新2:您越来越接近了,因为您已经越过了编译器配置,进入了链接器配置问题
在我的Ubuntu框中,Lua的库似乎是/usr/lib/liblua5.1.a
,并且没有名为liblua.a
的文件。所以对我来说,-llua
无法工作。我能够编译一个尽可能简单的“hello world”
用命令
$ gcc -I/usr/include/lua5.1 -o hello hello.c -llua5.1 -lm
$ ./hello
hello, Lua 5.1
$
$gcc-I/usr/include/lua5.1-o hello.c-llua5.1-lm
美元/你好
你好,Lua 5.1
$
也许您应该使用一个类似的最小示例,然后返回调整
srlua
makefile 欢迎来到SO。我对一些基本格式进行了编辑,以使问题更加清晰易读。您没有使用最新版本的srlua for Lua 5.1。看,我修好了,谢谢你的指点。但它仍然不起作用。对于我来说,我能找到的lua唯一的文件是/usr/include/lua5.1/,它有lauxlib.h lua.h luaconf.h lualib.h lua.hppSo,请安排makefile说-i/usr/include/lua5.1
,然后重试。您可能需要做一个类似的练习,在-L
选项中查找要命名的正确文件夹,以便-llua
可以用于链接。这是我的makefile,它给出了与以前相同的错误。对不起,我刚接触linux和所有的jazz.OOPS,对此很抱歉。我找到了liblua.a所在的位置及其地址/usr/lib/x86_64-linux-gnu。所以我把它放在上面写着LUALIB的地方,现在我得到了这个错误gcc-o srlua-Wl-E srlua.o-L/usr/lib/x86_64-linux-gnu-llua-lm-ldl/usr/bin/ld:not find-llua collect2:error:ld返回了一个退出状态make:**[srlua]error 1这样至少有5年了。为什么lua的安装方式不符合GCC的要求?我认为LibBullet是一样的。
#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
$