首页 > 解决方案 > CMake 中的 Visual Studio - 找不到调试/发布

问题描述

一个 gitlab-runner 配置脚本.gitlab-ci.yml,用于在 Powershell 中执行:

windows:
  tags:
  - windows
  stage: build
  script:
    - New-Item -ItemType "directory" -Confirm:$false -Force:$true -Name "build"
    - cd build
    - cmd.exe "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
    - cmake -G "Visual Studio 15 2017" -A x64 -T host=x64 -B. ..
    - cmake -j8 --build . --config Debug
    - ctest -j4

结果是

$ cmd.exe "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
[...]
-- Configuring done
-- Generating done
-- Build files have been written to: C:/gitlab-runner/builds/xxxxxxxx/build
$ cmake -j8 --build . --config Debug
CMake Error: The source directory "C:/gitlab-runner/builds/xxxxxxxx/build/Debug" does not exist.
Specify --help for usage, or press the help button on the CMake GUI.

ERROR: Job failed: exit status 1

如何解决配置步骤(cmake)和构建步骤(cmake --build)之间的冲突?

没有该选项,后者将无法工作--config Debug;但是如果给出了该选项,那么它会查找一个不存在的目录。

同样的问题--config Release

披露:来自 CMake 邮件列表的交叉发布。

标签: visual-studiopowershellcmakegitlab-ci-runner

解决方案


cmake在这种情况下,命令行参数的顺序很重要。对于构建模式,该--build选项必须是列出的第一个选项,但该-j8选项已放在它之前。将构建命令更改为以下内容,它应该可以工作:

cmake --build . --config Debug -j8

在 cmake 手册的Build A Project部分中记录了该--build选项的订购要求。


推荐阅读