遇到了将 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 看起来是一个很棒的语言来编写脚本,我想为开发搞定我的环境。

我希望这只是我的一个愚蠢错误。我相信我已经提供了我所能提供的所有信息。如果您需要更多的具体信息,我会尽可能提供更新。

点赞
用户1382515
用户1382515

你需要拥有库文件(.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控制台。

2012-08-06 21:08:14