在C++中使用Lua的问题
我同时使用VS Code和Visual Studio 2019,在Windows 10上。C++和Lua单独使用都很好。所有东西都更新到最新版本。
我将Lua安装在:_C:\Program Files\Lua_下。 在_C:\Program Files\Lua\include_下有所有的.h、.c和.hpp文件。 为了测试目的,我将文件夹“include”的内容复制到了我的程序文件夹中,放在了“Lua”中。所以有了_[exe目录]/Lua_。
这是我从互联网上找到的示例代码:
// main.cpp
#include <iostream>
#include "lua/lua.hpp"
using namespace std;
int main(int argc, char* argv[])
{
lua_State* L = luaL_newstate();
luaL_dostring(L, "x = 42");
lua_getglobal(L, "x");
lua_Number x = lua_tonumber(L, 1);
cout << "lua说x = " << (int)x << endl;
lua_close(L);
}
当我尝试在VS Code中运行它(alt + ctrl + N,这是插件中的组合键),我得到了:
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\Sokrates\AppData\Local\Temp\ccVATT2h.o:mainLauncher.c:(.text+0x15): 未定义对“luaL_newstate”的引用
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\Sokrates\AppData\Local\Temp\ccVATT2h.o:mainLauncher.c:(.text+0x2c): 未定义对“luaL_loadstring”的引用
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\Sokrates\AppData\Local\Temp\ccVATT2h.o:mainLauncher.c:(.text+0x5f): 未定义对“lua_pcallk”的引用
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\Sokrates\AppData\Local\Temp\ccVATT2h.o:mainLauncher.c:(.text+0x6d): 未定义对“lua_close”的引用
collect2.exe: error: ld returned 1 exit status
我找到了一些不同的“修复”方法,但它们都是针对Linux的,例如这个或这个。所以对于Win10没有什么帮助。
在VS 2019中,我将所有这些.h和.c文件添加到“源文件”中(除了_luac.c_和_lua.c_)。没有任何#include的话,代码将无法工作,所以我写了#include "lua.hpp"。我得到了一个错误"无法打开源文件"lua.hpp""。然后我尝试将带有.h和.c文件的整个文件夹复制到程序目录中,并使用#include "Lua/lua.hpp"。我回到了与VS Code相同的错误。
其他一些问题和答案在它们下面提到了参数"-llua"。我在手动构建中尝试了它:"g++ main.cpp -o main -llua",然而我得到了:
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: 无法找到-llua
collect2.exe: error: ld returned 1 exit status
最后一刻的观察:将VS 2019解决方案设置为"debug x64"似乎已经在那里解决了这个问题(代码正确运行并显示数字;仍然需要复制所有.h 和.c文件到exe目录中)。但是我不知道如何将它应用到VS Code(我更喜欢使用VS Code而不是VS 2019)。 我找到了这个,但是即使安装了扩展,也没有可点击的选项或"Switch to Windows PowerShell (x64)"。
原文链接 https://stackoverflow.com/questions/71257483
- 【上海普陀区】内向猫网络招募【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 脚本以针对特定键为 fluentbit 进行限流
- 如何在Lua中将变量从Lua推送到C ++