我已经在我的64位win10上安装了Microsoft Visual C ++ Build Tools 2015,并且可以使用cl.exe通过以下步骤(来自Setting the Path and Environment Variables for Command-Line Builds的一些指令)在普通命令提示符窗口中编译和链接C / C ++程序:
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中添加了vsvarsall
和cl
的路径。但它仍然不起作用(输出放在帖子的末尾)。所以我的问题是:如何定义task.json,它可以首先运行vcvarsall amd64
来设置系统变量,然后执行cl
命令来编译和链接程序。
正如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%
..
我想提一下,你想要另一个可视化工作室代码bootstraper批处理,它将设置vcvars环境,然后启动编辑器,这样你就不会为每个构建设置vcvars。像这样:
@echo off
call "E:\programs\VS2015\VC\vcvarsall.bat" x64 <----- update your path to vcvarsall.bat
code
这样,每次编译代码时都可以省略设置vcvarsall.bat
。 Minimal rebuild flag也会帮助你很多,所以你只编译更改的文件。