微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cmake 使用 GitHub Actions MSYS2

如何解决cmake 使用 GitHub Actions MSYS2

我正在尝试将 MSYS2 构建从 azure 管道 CI(有效)转换为 github 操作。

我现在遇到了 cmake 未被识别为命令的问题。

MSYS2 Cmake Error

我当前的(简化的)yaml 如下:

- uses: msys2/setup-msys2@v2
        with:
          msystem: MSYS
          install: >-
            git
            base-devel
            mingw-w64-${{ matrix.arch }}-gcc
            mingw-w64-${{ matrix.arch }}-cmake
          update: true

      - name: Move Checkout
        run: |
          copy-Item -Path ".\temp" -Destination "C:\_" -Recurse
      - name: CI-Build
        shell: msys2 {0}
        run: |
          cd /C/_
          mkdir build
          cd build
          cmake -DCMAKE_FIND_LIBRARY_SUFFIXES='.a' -DCMAKE_TOOLCHAIN_FILE=cmake/Toolchains/mingw64-x86_64.cmake -DCMAKE_BUILD_TYPE=Release -G 'MSYS Makefiles' ..
          make VERBOSE=1 -j4

为什么 cmake 不是公认的命令?!

解决方法

CMake 的包名错误。以下是 MSYS repository 中名称中包含 cmake 的软件包列表:

cmake
icmake
mingw-w64-cmake
mingw-w64-cmake-doc-qt
mingw-w64-extra-cmake-modules
mingw-w64-python-sphinxcontrib-moderncmakedomain

我打赌你要么想要mingw-w64-cmake,要么想要cmakematrix.arch 中的 mingw-w64-${{ matrix.arch }}-cmake 值不会扩展为上述名称之一。

,

答案是将 msystemMSYS 更改为 MINGW64 这是因为 MSYS 将针对 cygwin(这将需要 cmake 包,如Alex Reinking)。

指定 MINGW64 将允许正确使用 mingw-w64-x86_64-cmake 包。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。