windows vc ++如何使用UniversalCRT_IncludePath以及如何让它在cl.exe中工作

我使用Windows 10作为testing服务器,并尝试从Python和C ++的源代码构build。 我通过choco choco windows包pipe理器安装了vcbuild 2015

当我尝试构build源代码时,发现错误。

E:\downloads\Twisted-17.1.0>cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DWIN32=1 -IC:\Python36\include -IC:\Python36\include /Tcsrc/twisted/test/raiser.c /Fobuild\temp.win-amd64-3.6\Release\src/twisted/test/raiser.obj raiser.c c:\python36\include\pyconfig.h(59): fatal error C1083: Cannot open include file: 'io.h': No such file or directory 

我不能在我的vc ++包含path中findio.h:但是根据通道: Universal CRT

我发现io.h文件在我的C:\ Program Files(x86)\ Windows Kits \ 10 \ Include \ 10.0.10240.0 \ ucrt

然后我发现我的通用CRT是空的

 C:\WINDOWS\system32>set UniversalCRT_IncludePath Environment variable UniversalCRT_IncludePath not defined 

然后我定义了envirnomentvariables:

 E:\downloads\Twisted-17.1.0> set UniversalCRT_IncludePath="C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt" 

然后我尝试再次编译源代码,但仍然出现错误:

 E:\downloads\Twisted-17.1.0>cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DWIN32=1 -IC:\Python36\include -IC:\Python36\include /Tcsrc/twisted/test/raiser.c /Fobuild\temp.win-amd64-3.6\Release\src/twisted/test/raiser.obj raiser.c c:\python36\include\pyconfig.h(59): fatal error C1083: Cannot open include file: 'io.h': No such file or directory 

任何人都知道如何使UniversalCRT_IncludePath在命令行环境下工作,cl.exe如何尝试使用该variables并使其包括默认的c ++(包括path)。

UniversalCRT_IncludePathcl.exe没有什么特别之处。

通用CRT的新建项目向导模板使用该名称的MSBuild变量(不同于环境变量或外壳变量)来计算传递给cl.exe的命令行。

因为你正在手动调用编译器,所以你只需要在该目录中添加一个/I开关,而不用担心任何编译器无法查找的环境变量。