Win10下使用VS2019自带的MSVC CL命令行编译C/C++程序

1.工具介绍
Windows下VS套件自带的编译程序有以下这些:
cl.exe:编译程序
link.exe:链接程序
lib.exe:加载lib库的程序
nmake.exe:用Makefile进行构建、编译的工具
2.cl使用方法
用法: cl [ 选项... ] 文件名... [ /link 链接选项... ]
1.设置Path环境变量:bin目录cl.exe所在路径路径
D:\Program Files\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.23.28105\bin\Hostx86\x86;
D:\Program Files\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build;
D:\Program Files\Microsoft Visual Studio\2019\Enterprise\Common7\IDE;
D:\Windows Kits\10\Include\10.0.18362.0\ucrt;
2.新建include环境变量,设置头文件路径:
D:\Program Files\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.23.28105\include;
D:\Windows Kits\10\Include\10.0.18362.0\ucrt;
3.新建lib环境变量,设置头文件路径:
D:\Program Files\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.23.28105\lib\x86;
D:\Windows Kits\10\Lib\10.0.18362.0\ucrt\x86;
C:\Program Files (x86)\Microsoft SDKs\UWPNuGetPackages\runtime.win10-arm64.microsoft.net.native.compiler\2.2.7-rel-27913-00\tools\arm64\ilc\tools\link
完成三步骤,Windows命令行C++编译环境配置成功。
注:lib目录还需要uuid.lib,kernel32.lib两个文件,VS2019以前在类似
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib
VS2019已经找不到这个目录,所以我们就到C:\Program Files (x86)\Microsoft SDKs\目录手动搜索uuid.lib文件名,找到后打开这个文件夹,路径添加到lib环境变量中.
3.Windows不重启就使环境变量修改生效
在“我的电脑”->“属性”->“高级”->“环境变量”中增加或修改环境变量后,需重启系统才能使之生效。有没有什么方法可让它即时生效呢?下面介绍一种方法:

以修改环境变量“PATH”为例,修改完成后,进入DOS命令提示符,输入:set PATH=C: ,关闭DOS窗口。再次打开DOS窗口,输入:echo %PATH% ,可以发现“我的电脑”->“属性”->“高级”->“环境变量”中设置的 PATH 值已经生效。

不用担心DOS窗口中的修改会影响环境变量的值,DOS窗口中的环境变量只是Windows环境变量的一个副本而已。但是对副本的修改却会引发Windows环境变量的刷新,这正是我们想要的!

5.测试编写hello.cpp代码如下:

#include <stdio.h>
#include <iostream>
 
int main(){
	printf("hello world");
	return 0;
}

6.CMD执行命令

cl.exe hello.cpp

7.Makefile的编写和nmake使用方法
编写Makefile:

# Specify compiler
CC=cl.exe
  
.PHONY : all
all : hello-world.exe
  
hello-world.exe : hello-world.cpp
	$(CC)  hello-world.cpp

8.运行nmake:

E:\C\Hello>nmake