我试图ctrl+shift+B
像这样运行cmake :
{
"version": "2.0.0",
"tasks": [
{
"label": "cmake",
"type": "shell",
"options": {
"cwd": "${workspaceRoot}/build"
},
"command": "cmake ${workspaceRoot} -G \"MinGW Makefiles\"",
(...)
},
{
"label": "make",
"type": "shell",
"command": "mingw32-make.exe",
"options": {
"cwd": "${workspaceRoot}/build"
},
(...),
"dependsOn":["cmake"]
},
{
"label": "build",
"type": "shell",
"options": {
"cwd": "${workspaceRoot}/build"
},
"group": {
"kind": "build",
"isDefault": true
},
"dependsOn": ["make"]
}
]
}
但是无论我做什么,它都在$ {workspaceRoot}而不是$ {workspaceRoot} / build 1上运行:
Executing task in folder cpppractice: cmake C:\workspace\cpp\cpppractice -G "MinGW Makefiles"
这种方法有什么问题吗?据我了解cwd
,该options
项目中的变量应该起作用。
{
"label": "cmake",
"type": "shell",
"options": {
"cwd": "${workspaceRoot}/build"
},
"command": "cmake \"MinGW Makefiles\" ${workspaceRoot}",
},
这行得通,似乎“在cpppractice文件夹中的执行任务:”不正确,并且正在正确的位置执行它,至于为什么它以前无法正常工作,我认为它错误地解析了args?我无法确认,但这是输出:
Executing task in folder cpppractice: cmake "MinGW Makefiles"
C:\workspace\cpp\cpppractice <
-- Configuring done
-- Generating done
-- Build files have been written to: C:/workspace/cpp/cpppractice/build
以前它在关于无法使用它的地方进行了比较,这意味着使用生成器“ MinGW”分隔了参数“ MinGW Makefiles”。经过一番修补,我发现这也是一个答案:
{
"label": "cmake",
"type": "shell",
"options": {
"cwd": "${workspaceRoot}/build"
},
"command": "cmake",
"args": [
"-G",
"'MinGW Makefiles'",
"./.."
],
...
},
我实际上发现第二种方法更干净一些,但两者的工作原理相同,因此,为了将参数作为字符串传递,您必须使用单引号,如下所示:
...
"command":"echo",
"args": [
"'Za Warudo!'",
],
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句