Ant*_*ony 5 linux lua compiler-errors 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 terminated. make: *** [srlua.o] Error 1
我正在运行linux 64bit(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
RBe*_*eig 26
我怀疑这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,试试这个:
# 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
Run Code Online (Sandbox Code Playgroud)
你的定义中有拼写错误$(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;
}
Run Code Online (Sandbox Code Playgroud)
用命令
$ gcc -I/usr/include/lua5.1 -o hello hello.c -llua5.1 -lm $ ./hello hello, Lua 5.1 $
也许你应该做一个类似的最小例子工作,然后回去调整srlua
makefile.
归档时间: |
|
查看次数: |
33833 次 |
最近记录: |