Visual Studio SDK的一个问题排查

1. Visual Studio 和 Visual Studio Build Tools

Visual Studio 说的是一个 IDE,通常用图形界面去用它。
Visual Studio Build Tools 说的是只包含命令行工具和其它必要文件(库、头文件等)的一个工具。

Walkthrough: Compiling a Native C++ Program on the Command Line

2. Visual Studio 和 Windows SDK 版本关系

在尝试移植编译 pycocotools 到 win10 系统时,我使用 VS2017, 发现提示报错 “io.h找不到” 。仔细看了构建命令,发现找错了头文件搜索目录:在C:\Program Files (x86)\Windows Kits\10\Include目录下,分别有17763和18362两本版本的 Win10 SDK 的目录;在 Visual Studio Installer 里找了一番,VS2019 里才有 18362 , VS2017里没有它(可能是之前vs2019没卸载干净)

这导致了 pycocotools 的编译输出信息中,头文件被“一通乱找”,原本应该是:

-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt

被弄成了:

-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt

而 ucrt 目录下确实有我们需要的 "io.h" 文件:

尝试在 Visual Studio Installer 中安装了VS2019,并且选择了 18362, 确实会增加安装ucrt等目录;但是卸载VS2019的话,ucrt等新增目录会被删掉,而原来就有的几个目录巍然不动:

于是到控制面板搜索"Windows",找到了Windows Driver Kit,没错这货就是Win 10 SDK,版本是 18362,卸载它:

posted @ 2021-01-04 15:32  ChrisZZ  阅读(434)  评论(0编辑  收藏  举报