如何为Visual Studio Code配置默认tasks.json文件以自动添加C++17编译参数?
如何为Visual Studio Code配置默认tasks.json文件以自动添加C++17编译参数?
我之前也遇到过一模一样的问题!macOS自带的Clang默认标准确实偏老,每次新建工作区都手动加-std=c++17参数太折腾人了,后来摸索出两种靠谱的解决方法,能让VS Code自动把这个参数加到默认生成的tasks.json里:
方法一:配置全局用户级任务模板(推荐)
这个方法会让所有新建的VS Code工作区都自动使用带C++17参数的编译模板,一劳永逸:
- 打开VS Code的命令面板(按下
Cmd+Shift+P快捷键),输入Tasks: Open User Tasks并选中这个选项 - 此时会打开用户级别的
tasks.json配置文件,如果是第一次打开,可能会提示选择模板,直接选C++相关的模板即可 - 在文件里找到标签为
C/C++: clang++ build active file的任务,把-std=c++17添加到args数组中,修改后的示例代码如下:
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "C/C++: clang++ build active file", "command": "/usr/bin/clang++", "args": [ "-std=c++17", // 新增的C++17编译参数 "-fcolor-diagnostics", "-fansi-escape-codes", "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "编译器: /usr/bin/clang++" } ] }
- 保存这个文件,之后每次新建工作区并第一次运行.cpp文件时,VS Code就会自动生成包含
-std=c++17参数的tasks.json了
方法二:修改工作区级别的默认设置(仅针对单个项目)
如果你只需要某个特定项目默认使用C++17,可以在工作区的settings.json里添加配置:
- 打开当前工作区的
settings.json(可以通过命令面板输入**Preferences: Open Workspace Settings (JSON)**打开) - 添加以下配置:
{ "C_Cpp.default.cppStandard": "c++17", "C_Cpp.default.compilerPath": "/usr/bin/clang++" }
不过要注意,这个设置只是告诉VS Code的代码分析器使用C++17标准,但不会自动修改tasks.json的编译参数,所以还是方法一更直接解决你的问题。
另外提一句:如果之前已经创建了工作区,需要删除现有的tasks.json,然后重新运行.cpp文件,VS Code才会用新的模板生成文件哦。
备注:内容来源于stack exchange,提问作者Merlin2600
相关产品推荐
相关产品推荐

