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

将CMakeLists.txt移至src后,Github Actions中CMake加载缓存失败求助

CMake加载缓存失败问题解决

问题原因

你遇到的“Error loading Cache”错误,核心是CMake缓存文件的生成路径与后续构建路径不匹配:

  • 执行cmake ${{github.workspace}}/src时,CMake会在当前工作目录(默认是仓库根目录)生成CMakeCache.txt和构建文件,而非src目录内。
  • 后续cmake --build ${{github.workspace}}/src会尝试去src目录查找缓存文件,自然找不到,导致报错。

修正方案(推荐)

使用CMake 3.13+推荐的源码与构建目录分离方式,避免污染源码目录,同时确保路径匹配:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3

    - name: Configure CMake
      # -S指定源码目录,-B指定独立的构建目录
      run: cmake -S ${{github.workspace}}/src -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}

    - name: Build
      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}

    - name: Test
      working-directory: ${{github.workspace}}/build
      run: ctest -C ${{env.BUILD_TYPE}}

备选方案(在src目录内构建)

如果坚持要在src目录内生成构建文件,可调整配置和构建步骤的工作目录:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3

    - name: Configure CMake
      working-directory: ${{github.workspace}}/src
      run: cmake . -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}

    - name: Build
      working-directory: ${{github.workspace}}/src
      run: cmake --build . --config ${{env.BUILD_TYPE}}

    - name: Test
      working-directory: ${{github.workspace}}/src
      run: ctest -C ${{env.BUILD_TYPE}}

内容的提问来源于stack exchange,提问作者user17175449

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 23:54:05