我试图将Lua嵌入C ++(并学习Lua),从Elias Daler的训练轮方法here开始。我使用的是MSVC 14.0,LuaBinaries 5.3.2 - Release 1(特别是lua-5.3.2_Win32_dllw4_lib.zip here)和LuaBridge 2.0。
我已添加以下附加包含目录:
C:\ LUA-5.3.2_Win32_dllw4_lib \包括; C:\ LuaBridge
以下附加依赖:
C:\ LUA-5.3.2_Win32_dllw4_lib \ liblua53.a
我使用以下来源(尽可能减少):
#include "stdafx.h"
#include <LuaBridge.h>
int main() {
luabridge::lua_State* L = luabridge::luaL_newstate();
}
该源编译和链接很好,但应用程序本身导致标准缺少DLL系统错误:
程序无法启动,因为您的计算机缺少lua53.dll。尝试重新安装该程序以解决此问题。
lua53.dll在C:\ lua-5.3.2_Win32_dllw4_lib \中 - 我错过了什么?
答案 0 :(得分:1)
根据official Microsoft documentation,Windows在以下目录中搜索DLL:
当前进程的可执行模块所在的目录。
当前目录。
Windows系统目录。
GetSystemDirectory
函数检索此目录的路径。Windows目录。
GetWindowsDirectory
函数检索此目录的路径。- 醇>
PATH
环境变量中列出的目录。
因此,解决问题的一种方法是将C:\lua-5.3.2_Win32_dllw4_lib
添加到当前用户的PATH
。
与其他选项相比,这样做的好处是不需要管理员权限,也不需要lua53.dll
位于当前目录或与可执行文件相同的目录中。