如何定义task.json通过在Windows上使用cl.exe来编译vscode中的C / C ++代码?

我已经在64位win10上安装了Microsoft Visual C ++ Build Tools 2015,并且可以使用cl.exe通过以下步骤(通过设置path和环境中的一些说明)在简单的命令提示符窗口中编译和链接C / C ++程序命令行版本的variables ):

1. cd "\Program Files (x86)\Microsoft Visual Studio 14.0\VC" 2. vcvarsall amd64 3. cl helloworld.c 

helloworld.c只是一个简单的C源文件来打印“Hello world!”。 我也尝试使用task.json来直接编译和链接vs代码中的C / C ++程序。 这是我的task.json:

 { // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "0.1.0", "command": "vcvarsall amd64 && cl", "isShellCommand": true, "args": ["${file}"], "showOutput": "always" } 

并且在PATH中添加了vsvarsallcl的path。 但它仍然不起作用(输出放在post的末尾)。 所以我的问题是:我怎样才能定义task.json,它可以先运行vcvarsall amd64来设置系统variables,然后执行cl命令来编译和链接程序。

在这里输入图像说明

Solutions Collecting From Web of "如何定义task.json通过在Windows上使用cl.exe来编译vscode中的C / C ++代码?"

正如Rudolfs Bundulis所说,创建一个批处理文件,只需调用它,就可以完成所有你需要做的事情。

tasks.json:

 { // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "0.1.0", "command": "build.bat", "isShellCommand": true, "args": [], "showOutput": "always" } 

在你的项目中有build.bat的善良。

运行build.bat:

 @echo off call "E:\programs\VS2015\VC\vcvarsall.bat" x64 <----- update your path to vcvarsall.bat .. cl %YourCompilerFlags% main.cpp %YourLinkerFlags% ..