visual-studio - 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 邮件列表的交叉发布。
解决方案
cmake
在这种情况下,命令行参数的顺序很重要。对于构建模式,该--build
选项必须是列出的第一个选项,但该-j8
选项已放在它之前。将构建命令更改为以下内容,它应该可以工作:
cmake --build . --config Debug -j8
在 cmake 手册的Build A Project部分中记录了该--build
选项的订购要求。
推荐阅读
- python - Python-AttributeError: 'NoneType' 对象没有属性 'find';;;
- java - Spring Cloud AWS SQS 无法在本地连接到服务端点
- angular - HttpParams 在 Angular 中不起作用,出现 502 错误
- python - 在Python中查找曲线中最近点到有界n维空间中任意点的距离
- flutter - 从 Map Markers 到 Detail 页面的 Flutter Hero 动画
- reactjs - Visual Studio Code 不跟踪 React 问题
- r - 如何从数据框分类变量和频率列创建交叉表?
- mysql - 以下查询的结果是什么?
- c++ - C ++:如果括号为空,为什么不抛出错误对象?
- java - Hibernate - 1:N - 保存孩子时复制父母