lua编译为c++时如何使用ZeroBrane Studio IDE调试器

威尔·斯塔维利

我已将 Lua 5.3 编译为 32 位 C++ DLL 和 exe。DLL 包含除 lua.cpp 和 luac.cpp 之外的所有 lua 代码。exe 编译 lua.cpp 并使用 DLL 运行 lua 解释器。这在从命令行单独运行时工作正常。我希望能够使用这个 DLL 和 exe 从 IDE 运行。

如果我用我自己的版本替换/ZeroBraneStudio/bin/lua53.dlllua53.exe,我可以运行脚本(单击两个绿色箭头)。但是,调试不起作用,出现以下错误:

在动态链接库 lua53.dll 中找不到过程入口点 luaL_addlstring。

我可以看到这是因为调试器正在使用 luasocket。\ZeroBraneStudio\bin\clibs53\socket\core.dll依赖于lua53.dll,并期望它包含编译为 c 的 lua。

那么,对此的正确解决方案是什么 - 是否也将 luasocket 编译为 C++?

(而且,如果是这样,是否有人有这样做的说明/指导?我一直找不到任何关于此的信息。)

谢谢。

威尔·斯塔维利

好的,我能够让它工作。解决方案是将 luasocket 编译为 C++。我不会在这里给出有关如何执行此操作的完整说明,但有几点希望可以帮助其他遇到相同问题的人:

  • 从这里得到 luasocket:https : //github.com/diegonehab/luasocket
  • 将所有 *.c 文件重命名为 *.cpp
  • 将 Lua52.props 重命名为 Lua.props(我使用的是 lua 5.3,但似乎兼容?)
  • 将 lua 头文件和 lib 放在适当的文件夹中
  • 在 Visual Studio 2012 中打开解决方案
  • 修复了项目文件的小问题,例如文件的重命名。
  • 在 luaopen_socket_core 和 luaopen_mime_core 函数的声明中添加了“extern "C"”(lua 能够加载库所必需的)。
  • 内置解决方案
  • 将新的 dll 复制到 clibs53/socket 和 clibs53/mime 文件夹中。

我使用 Dependency Walker 来帮助解决这个问题。如果将来有人想了解更多详细信息,请发表评论。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Visual Studio Code C ++调试器中设置断点时出错

是否可以使用Visual Studio 2013 C / C ++调试器调用函数并打印结果

如何用 .c 格式反编译 lua [编译为 C]

在Visual Studio调试器中如何访问IloIntArray元素?

Visual Studio如何从调试器序列化对象

Visual Studio调试器如何检测功能调用?

强制C ++程序在Visual Studio调试器中暂停

Visual Studio代码-C ++调试器无法启动

无法在Visual Studio代码中启动C ++调试器

使用Visual Studio调试器更改值时中断

为什么在标准 IDE 调试器上使用 OllyDbg?

如何在C#Visual Studio调试器中显示1000分隔符

如何在Visual Studio Code中使用Delve调试器进行远程调试

Visual Studio Community 2019 调试器未使用 Blazor Wasm 应用抢占 Chrome 调试器

Android Emulator(版本 12,android studio Chipmunk)在调试时随机卡在“等待调试器”

调试主屏幕小部件时,Android Studio中的调试器断开连接

调试异步任务时,Android Studio中的奇怪调试器行为

用于打印调试信息的C#或Visual Studio调试器

在Visual Studio Code和Delve调试器中使用标签调试Go

使用内联/交叉内联函数时,Android Studio 调试器不起作用

如何在Visual Studio Code中使用Delve调试器

如何使用Android Studio调试器退回一行代码

如何在Android Studio 3.1调试器中使用“开销”标签?

在Visual Studio中“开始调试”并附加到调试器时如何运行自定义代码

在Visual Studio中,当您不拥有托管语言(如C#)拥有的属性更改时,如何中断调试器

当 Visual Studio 调试器打开时,某些 Web Api 端点非常慢

Android Studio调试器:当变量获得特定值时停止

Visual Studio 11的图形调试器在OMSetRenderTargets中捕获时崩溃

C / C ++调试器在Android Studio 3.0.1上不起作用