调试嵌入式 Lua 5.2.2 代码
2017-5-23 10:31:54
收藏:0
阅读:192
评论:2
我该如何调试嵌入在我的C++应用程序中的Lua 5.2.2代码?
我已经查看了这个问题,其中提供的所有IDE都处理5.1及以下版本,当我尝试将它们与5.2.2一起使用时,它们会崩溃。
点赞
用户234175
针对 OP 的评论请求,以下是应该如何从 C++ 中打开 lua 标准库“base”:
#include "lua.hpp"
//...
int main ()
{
lua_State* L = luaL_newstate();
luaL_requiref(L, "base", luaopen_base, 0);
// ...
int error = luaL_loadfile(L, mainLua);
lua_call(L, 0, 0);
lua_close(L);
}
请注意,您可以通过将以下代码
luaL_requiref(L, "base", luaopen_base, 0);
替换为
luaL_openlibs(L);
来一次性打开所有标准库。
更多相关信息请参见 Lua 5.2 参考手册第 6 章。
2013-09-09 01:57:19
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的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 5.2调试说明使用ZeroBrane Studio来调试应用程序。请注意,您需要使用针对Lua5.2编译的luasocket。(您看到的奔溃可能是因为您的应用程序加载了针对Lua5.1编译的luasocket,而Lua5.1 DLL则加载或无法找到所需符号。)
如果您不想编译luasocket,您可以从此文件夹及其子文件夹中获取Windows/OSX/Linux二进制文件。只需确保这些库在LUA_CPATH中优先于可能针对Lua5.1编译的任何文件夹。
[根据聊天讨论进行更新] 您可能遇到多重VM问题的原因是您的应用程序可能静态编译了Lua解释器。然后您加载了针对lua52.dll编译的luasocket(直接或通过mobdebug),它加载另一个解释器的副本。为了避免这种情况,您有两个选择:(1)将luasocket编译到您的应用程序中,就像您包含lua解释器本身一样。您将不需要任何其他东西,只需一个mobdebug.lua文件即可调试您的应用程序;或者(2)使用代理dll。它看起来像是lua52.dll,实际上它会将您的调用代理到静态编译的lua库,避免了多重VM问题。代理dll适用于Lua 5.1,但您可以调整脚本使其适用于Lua 5.2。
(如果您的解释器未静态编译,则仍然可能出现两个解释器,如果您加载的Lua DLL与lua52.dll的命名不同。)