srlua的Makefile出错,lua.h文件不存在。
2013-11-19 19:2:51
收藏:0
阅读:144
评论:1
我正在尝试使用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 64位(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
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
我怀疑
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 上构建并使用了 srlua,使用的是 Lua 5.1,但是我还没有在 Ubuntu 上尝试过这个,所以我不能太具体。
更新:
从你的 pastebin 里,尝试这个:
# 如果 Lua 全局安装,则通常会使用以下命令行 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 开发包,所以我不确定它被放在哪里。更新 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。