【发布时间】:2020-09-04 15:27:58
【问题描述】:
我正在尝试在 macOS 上使用 clang++ 构建一个包含多个 *.cpp 文件的简单项目。
tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "clang++ build active file",
"command": "/usr/bin/clang++",
"args": [
"-std=c++17",
"-Wall",
"-Wextra",
"-Weffc++",
"-Wconversion",
"-pedantic-errors",
"-stdlib=libc++",
"-g",
"${workspaceFolder}/*.cpp",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
生成的命令如下所示:
/usr/bin/clang++ -std=c++17 -Wall -Wextra -Weffc++ -Wconversion -pedantic-errors -stdlib=libc++ -g '/Users/USER/Developer/WORKINGDIR/Lesson 2/Lesson 2.8/*.cpp' -o '/Users/USER/Developer/WORKINGDIR/Lesson 2/Lesson 2.8/main'
但是编译器会报错:
clang: error: no such file or directory: '/Users/USER/Developer/WORKINGDIR/Lesson 2/Lesson 2.8/*.cpp'
但是如果我改变指向文件的字符串:
'/Users/USER/Developer/WORKINGDIR/Lesson 2/Lesson 2.8/*.cpp'
对此(不带引号并添加“\”):
/Users/USER/Developer/WORKINGDIR/Lesson\ 2/Lesson\ 2.8/*.cpp
一切正常。
但是如何在 tasks.json 中配置相同的字符串?或者我应该在那里改变什么才能正常工作?
【问题讨论】:
-
试着用引号括起来,比如
'\"/Users/USER/Developer/WORKINGDIR/Lesson 2/Lesson 2.8/*.cpp\"' -
@VladimirNikitin 我正在尝试配置 VSCode tasks.json 文件。按照您建议的方式,它在那里不起作用。不过还是谢谢。
-
@AsteroidsWithWings 这是同一个问题,是的。但是那个错误很旧,我正在使用最新版本的配置。所以,遗憾的是它没有。我向 Microsoft 报告了一个错误。感谢您对这个问题的贡献。
标签: c++ macos visual-studio-code