首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >让find_package找到不同版本的Lua

让find_package找到不同版本的Lua
EN

Stack Overflow用户
提问于 2020-12-28 03:38:42
回答 1查看 189关注 0票数 0

我在Windows上,使用Visual Studio2019,我有以下CMakeLists.txt文件:

代码语言:javascript
运行
复制
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找不到我的5.2版本的Lua。我所在的机器通过C:\Program Files (x86)\Lua\5.1中的旧的(不推荐使用的) luaforwindows安装程序安装了5.1.4,当我在find_package()行中指定5.1 (或者根本没有版本)时,可以找到这些安装程序。

Lua5.2或更高版本没有这样的安装程序,所以我从https://sourceforge.net/projects/luabinaries/下载了5.2二进制文件,并将它们复制到C:\Program Files (x86)\ Lua \5.2下的类似目录结构中,但没有找到它们。可能有一些环境变量或其他方法可以给FindLua.cmake脚本提供提示-在Windows上,到底什么是规范的方法?

我尝试过的方法:我认为这是由CMAKE_PREFIX_PATH处理的,所以我在CMakeSettings.json中添加了以下内容:

代码语言:javascript
运行
复制
      "cmakeCommandArgs": "-DCMAKE_PREFIX_PATH=C:/Program Files (x86)/Lua/5.2",

但它没有任何效果。仍然得到了旧的信息:

代码语言:javascript
运行
复制
1> [CMake]   Could NOT find Lua (missing: LUA_INCLUDE_DIR) (Required is at least version
1> [CMake]   "5.2")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-28 04:11:09

我终于想通了。必须将该库命名为lua52.lib (我下载的压缩文件名为liblua52.a,虽然我已将其重命名为.lib,但我没有使用该名称,导致FindLua.cmake遗漏了它)。然后,我还更改了所有的PATH、LUA_PATH、LUA_DEV和其他环境变量,使其指向5.2目录,现在它可以工作了。我想知道为什么CMAKE_PREFIX_PATH不能工作,因为我希望能够为每个项目选择一个位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65469724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档