我正在尝试将Lua嵌入到C++中(并学习Lua),从Elias Daler的训练轮方法开始。我正在使用MSVC 14.0,LuaBinaries5.3.2 - Release 1(特别是这里的lua-5.3.2_Win32_dllw4_lib.zip)和LuaBridge 2.0。
我添加了以下附加包含目录:
C:\lua-5.3.2_Win32_dllw4_lib\include;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\ 中 — 我错过了什么?
根据官方Microsoft文档,Windows 在以下目录中搜索 DLL:
当前进程的可执行模块所在的目录。
当前目录。
窗口系统目录。
GetSystemDirectory
函数检索此目录的路径。窗口目录。
GetWindowsDirectory
函数检索此目录的路径。
PATH
环境变量中列出的目录。
因此,解决问题的一种方法是将C:lua-5.3.2_Win32_dllw4_lib
添加到当前用户的PATH
中。
与其他选项相比,这具有不需要管理员权限的优点,并且不需要lua53.dll
位于当前目录或可执行文件所在的目录中。