Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux srlua makefile错误lua.h没有这样的文件或目录_Linux_Compiler Errors_Lua_Makefile - Fatal编程技术网

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 $