无法在Windows上使用CMake链接Lua 5.3.4:无法找到Lua(缺少:LUA_LIBRARIES)(发现版本" 5.3.4")

我不理解如何在Windows上使用VS 2017和CMake(3.11)来定位Lua 5.3.4的动态版本。我设置了CMAKE_PREFIX_PATH指向一个包含include \lua.hlib\lua53.dll的目录。这些是CMakeLists.txt中的相关行:

if(NOT DEFINED LUA_INCLUDE_DIR OR NOT DEFINED LUA_LIBRARIES)
    find_package(lua REQUIRED)
endif()
include_directories(${LUA_INCLUDE_DIR})
target_link_libraries(${PROJECT_NAME} ${LUA_LIBRARIES})

当尝试运行cmake . -G "Visual Studio 15 2017 Win64"时,我收到以下错误:

Could NOT find Lua (missing: LUA_LIBRARIES) (found version "5.3.4")

脚本表示,库版本在我提供的路径上找到了,但找不到库文件,它的名称为lua53.dll。查看FindLua.cmake的源代码时,似乎这将与此版本的一个名称匹配器相匹配。

set(_lua_library_names
    lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}
    lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
    lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
    lua.${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
)

有什么问题可能存在吗?

点赞
用户5862977
用户5862977

原来我只需要 Lua 5.3.4 的静态版本(lua53.lib)。将它放在前缀中可以让 Lua 被检测到。对于 VS 2017,从 luabinaries 下载合适的版本是 lua-5.3.4_Win64_vc14_lib.zip

2018-05-04 20:43:20