从CMake的Visual Studio-找不到调试/发布

时间:2019-03-22 20:06:35

标签: visual-studio powershell cmake gitlab-ci-runner

一个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邮件列表中交叉发布。

1 个答案:

答案 0 :(得分:2)

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

cmake --build . --config Debug -j8

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