Visual C++的cl.exe编译器是微软推出的编译器,干什么的怎么用也不赘述了。大多数情况都是直接在Visual Studio里写代码然后点击“播放”按钮让Visual Studio自动处理编译连接执行的问题,但是偶尔也会出现比如写个 Hello World
, I'm newBee ShineShine
之类的简单的程序,这类程序也启动VS来写的话似乎有种杀鸡焉用宰牛刀的行为,那么可以在PowerShell或者CMD里使用cl.exe手工执行编译操作。
如果需要编译一份C/C艹文件,配置系统变量前直接敲入 cl.exe [Args]
肯定会报错,查了一下MSDN可以看到在编译之前需要执行批处理 vsvars32.bat
,在
C:/Program Files (x86)/Microsoft Visual Studio 14.0/Common7/Tools
目录下(根据VS版本修订版本号)。之前为了图简单一直是这样做了,结果在自己写的在线评测里面发现C/C艹经常编译超时,有个原因就是这个批处理还是占了不少时间,所以得用设环境变量的方法来回避执行这个蛮肥的批处理。
根据网上的资料可以找到需要设置: PATH
、 LIB
和 INCLUDE
这三个环境变量。一般来说 PATH
都有的,所以追加 PATH
后添加 LIB
和 INCLUDE
就可以了。但是搜索给出来的结果比较陈旧,主要是VS2005之类的老版本,毕竟10年过去了,所以按照网上的整下来会出现头文件不对、库文件不对的问题,主要的原因是VS2015里面加入了ucrt这个东西,所以需要额外引入Windows 10的SDK,还有 uuid.lib
得在Windows 8.x的SDK里找到,所以配置起来还是蛮麻烦的。
C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin;C:/Program Files (x86)/Microsoft Visual Studio 14.0/Common7/IDE;
C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/lib;C:/Program Files (x86)/Windows Kits/10/Lib/10.0.10150.0/ucrt/x86;C:/Program Files (x86)/Windows Kits/8.1/Lib/winv6.3/um/x86
C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include;C:/Program Files (x86)/Windows Kits/10/Include/10.0.10150.0/ucrt
不同操作系统版本是有点变化的,值得注意的是x86/x86_64这个需要根据目标设定选择,Windows Kits会有一些变化,原则路径大致相同,所以以上的配置信息谨慎复制粘贴。
然后就可以直接在命令行里使用 cl
命令来编译C/C艹文件了,具体cl编译参数查阅MSDN。