You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions中CMake无法定位Lua的问题解决请求

解决CMake在GitHub Actions中找不到Lua的问题

问题根源在于你使用的leafo/gh-actions-lua会将Lua安装在$HOME/.lua目录下,而CMake的find_package(Lua)默认只会搜索系统标准路径,因此无法识别到这个自定义位置的Lua。下面提供两种可行的解决方法:

方法一:在CMake命令中手动指定Lua路径

修改GitHub Actions配置里的useCmake步骤,通过-D参数直接告诉CMake Lua的头文件和库文件位置:

- name: useCmake
  run: cmake -B build -S . -DLUA_INCLUDE_DIR=$HOME/.lua/include/lua5.1 -DLUA_LIBRARIES=$HOME/.lua/lib/liblua.so

注:Lua 5.1的头文件通常放在include/lua5.1子目录下,Linux环境下库文件名为liblua.so。

方法二:修改CMakeLists.txt适配自定义安装路径

如果希望CMakeLists.txt能同时兼容本地开发和CI环境,可以手动指定Lua的搜索路径,替换原有的find_package(Lua REQUIRED):

cmake_minimum_required (VERSION 3.5)

project (myLuaTest)

# 指定gh-actions-lua安装Lua的根目录
set(LUA_INSTALL_PREFIX $ENV{HOME}/.lua)

# 手动查找Lua头文件和库文件
find_path(LUA_INCLUDE_DIR lua.h 
    PATHS ${LUA_INSTALL_PREFIX}/include/lua5.1
    NO_DEFAULT_PATH
)
find_library(LUA_LIBRARIES NAMES lua5.1 lua
    PATHS ${LUA_INSTALL_PREFIX}/lib
    NO_DEFAULT_PATH
)

# 检查是否找到Lua
if(NOT LUA_INCLUDE_DIR OR NOT LUA_LIBRARIES)
    message(FATAL_ERROR "无法在${LUA_INSTALL_PREFIX}路径下找到Lua")
endif()

# 后续可添加编译链接逻辑(示例)
# add_executable(myLuaTest main.cpp)
# target_link_libraries(myLuaTest PRIVATE ${LUA_LIBRARIES})
# target_include_directories(myLuaTest PRIVATE ${LUA_INCLUDE_DIR})

两种方法任选其一即可解决问题,方法一无需修改CMake配置,适合快速适配CI环境;方法二更通用,能覆盖本地开发场景。

内容的提问来源于stack exchange,提问作者Don'tDownVote

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 02:45:17