【发布时间】:2021-04-04 18:13:20
【问题描述】:
我在 Windows 上,使用 Visual Studio 2019,并且我有以下 CMakeLists.txt 文件:
project (demo C)
cmake_minimum_required(VERSION 2.8)
find_package(Lua 5.2 REQUIRED)
add_executable(demo main.c)
target_link_libraries(demo ${LUA_LIBRARIES})
target_include_directories(demo PRIVATE ${LUA_INCLUDE_DIR})
这不会构建,因为 CMake 找不到我的 Lua 5.2 版本。我正在使用的机器通过 C:\Program Files (x86)\Lua\5.1 中的旧(已弃用)luaforwindows 安装程序安装了 5.1.4,当我在 find_package() 中指定 5.1(或根本没有版本)时行,找到了。
Lua 5.2 或更高版本没有这样的安装程序,所以我从https://sourceforge.net/projects/luabinaries/ 下载了 5.2 二进制文件并将它们复制到 C:\Program Files (x86)\Lua\5.2 下的类似目录结构,但它们不是没有找到。可能有一些环境变量或其他方式可以为 FindLua.cmake 脚本提供提示 - 在 Windows 上,这方面的规范方式到底是什么?
我尝试过的:我认为这是用 CMAKE_PREFIX_PATH 处理的,所以我将它添加到 CMakeSettings.json:
"cmakeCommandArgs": "-DCMAKE_PREFIX_PATH=C:/Program Files (x86)/Lua/5.2",
但它没有效果。仍然收到旧消息:
1> [CMake] Could NOT find Lua (missing: LUA_INCLUDE_DIR) (Required is at least version
1> [CMake] "5.2")
【问题讨论】:
-
"Binaries" 在您想要运行已经构建的程序时很有用。但是对于构建(编译)程序,您也需要标头。如果是 Lua,则需要
lua.h标头。如您所见,在您的“二进制文件”提供的 4 个文件中,没有这样的文件。 -
我知道这一点。还有第二个 zip 文件,其中包含 Lua 库的二进制文件和头文件,它们安装在正确的位置(但事实证明,名称错误)。
标签: visual-studio cmake lua