"Undefined reference to"使用Lua。
2012-12-27 20:32:36
收藏:0
阅读:271
评论:3
当我尝试构建我的项目时,出现了“undefined reference to 'luaL_newstate'”的错误。我知道这是一个与链接器有关的错误,但我对Lua和向项目添加库是相对新的。顺便说一下,我使用Code::Blocks。API函数luaL_openlibs、luaL_loadfile、lua_pcall、lua_getfield、lua_type、lua_settop也都不见了。
我在一个网站上看到,我必须将我的项目链接到libdl才能解决这个问题,但我不太明白它的意思以及如何做到。
点赞
用户1263584
我面临着相同的问题,在我的情况下,我在这里找到了适合我的解决方案:[http://www.linuxquestions.org/questions/programming-9/undefined-reference-error-when-using-lua-api-892782/]。基本上就是将lua的**#include**包装在一个**extern "C"**里面,如下:
extern "C"{
#include <lua5.2/lualib.h>
#include <lua5.2/lauxlib.h>
#include <lua5.2/lua.h>
}
2014-01-15 08:22:14
用户5384363
正如被接受的答案所提到的,这些头文件缺乏 extern "C"。另一个选择是包含已安装的 _lua.hpp_,它已经使用 extern "C" 来封装这些 Lua 头文件。
// lua.hpp
// 用于 C++ 的 Lua 头文件
// <<extern "C">> 不是自动提供的,因为 Lua 也可以编译为 C++
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
2020-05-14 07:19:49
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的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中获取用户配置主目录的跨平台方法
Lua 在首次尝试进行编译时可能会有些复杂。你引用的网站是正确的:链接 Lua 时,libdl 几乎是必须的。
我手头没有 Code::Blocks,所以我不能告诉你需要添加哪些选项。它应该是一个“命令行选项”或“编译器选项”的列表。如果你是从命令行编译的话,完整的命令将如下所示:
gcc -o sample sample.c -llua -ldl请注意,在库名之前没有空格的选项。在 Code::Blocks 中应该有一个选项来添加您自己的编译时选项或编译器标志。您可以将“-llua”和“-ldl”添加到该选项列表中。或者,您可以直接从命令行中执行。
libdl 是一个库,用于在程序中动态链接其他库。您必须添加它才能正确链接 Lua。