遇到了将 Lua for Windows 安装嵌入到 C++ 程序中的问题。
这是我第一次使用正常的谷歌搜索/堆栈溢出/YouTube 视频学习例程都无法解决的问题。
我试图在 C++ 环境中编译一款最小的 Lua 程序,以确保我的环境已准备好进行开发。这个 Lua 语言稍后将用于我的 C++ 游戏的用户界面编程。
首先了解一些关于我的环境的基本信息:
Windows 7 64 位
Visual Studio 2010
Lua for Windows 5.1(我可以从 Google 代码下载的最新版本)
这是我试图编译的代码:
所以问题还是出在哪里?
这是我得到的错误:
1>UserInt.obj : error LNK2019: unresolved external symbol _luaL_newstate referenced in function _wmain 1>c:\users\deank\documents\visual studio 2010\Projects\UserInt\Debug\UserInt.exe : fatal error LNK1120: 1 unresolved externals
我尝试过的东西:
我已经阅读了关于 lua_open()(以及其他几个函数)不再使用的文章,所以我尝试使用 newstate 函数。 我得到了相同的错误。这只是一个理智检查而已。我使用的是 5.1 而不是 5.2,所以我不认为这真的有影响。
我也阅读了这个线程 Cannot link a minimal Lua program,但它似乎不能帮助我,因为我没有运行与操作。
顶部的 pragma comment 行是我在另一个线程中看到的。无论我是否使用它,我都会收到相同的错误。
我已经进入我的 Visual Studio C++ 目录区域,并将 lua 包含添加到包含中,将 lua lib 添加到库中。
因此,我的程序似乎正在看到 .h 并看到符号。但是由于某种原因它没有获得函数的 .cpp 实现。这就是为什么我希望直接包含那个 .dll 可以帮助解决问题的原因,但它没有。
所以,我觉得我已经用自己的方式耗尽了所有的选择。我希望有人能帮助我在这里前进。 Lua 看起来是一个很棒的语言来编写脚本,我想为开发搞定我的环境。
我希望这只是我的一个愚蠢错误。我相信我已经提供了我所能提供的所有信息。如果您需要更多的具体信息,我会尽可能提供更新。
- 如何将两个不同的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中获取用户配置主目录的跨平台方法
你需要拥有库文件(.LIB)并将其添加到VS中。使用 Project > Properties 并转到 Linker > Input,将完整的 .lib 文件名添加到“Additional Dependencies”行。请注意,.LIB 与 .DLL 不同。
个人而言,我更喜欢将源代码添加到我的项目中,而不是引用动态链接库。以下过程将让您这样做。
1.下载源代码 (http://www.lua.org/ftp/),解压缩。
2.在Visual Studio中,选择 File > New > Project,并选择Visual C++,Win32,“Win32 Console Application”。
3.在Visual Studio中的您的项目中,添加除了 luac.c 以外的所有源代码。还要从VS为您创建的文件中删除 main() 函数。这通常以您指定的项目名称和 .cpp 文件扩展名命名。您可以完全从项目中删除此文件。
4.构建并运行。
这是Lua控制台。