安装完VisualStudio2017社区版后,创建一个C++的测试项目,好使,一时心血来潮创建了纯C的项目,结果死活提示找不到头文件“stdio.h”,测试代码如下:
#include<stdio.h>
int main()
{
printf("Hello world\n");
}
在网上搜罗请教了一番,总算是将问题解决了,现总结一下,以度来人~
总结下,头文件找不到可能原因有如下几种,看看你是哪种:
1. 项目属性中设置的“配置”和“平台”,与VisualStudio主界面设置的“解决方案”和“解决方案平台”不一致导致。
项目菜单-》选择最下面的“xxx”属性(“xxx”是你工程的名字),打开工程属性页,具体如下图所示:
在此窗口中,核对主开发窗口的配置与平台是否与工程属性页中的一致,如果不一致,改为一致,编译看看。
这里我的是一致的,不是这个问题,PASS。
2. 确认本地是否有缺少的头文件。
一般装完后,头文件是放在C:\Program Files (x86)\Windows Kits\版本号\Include下的,例如,我这里是在:C:\Program Files (x86)\Windows Kits\10\Include,可以直接在C:\Program Files (x86)\Windows Kits目录下搜索是否有缺少的文件。
开始我在这个路径下没有找到“stdio.h”文件,有网友分享说缺少两个组件:
“用于UWP(C#、VB、JS)的Windows 10 SDK(10.0.xxxx)”
“用于UWP(C++)的Windows 10 SDK(10.0.xxxx)”
于是打开Visual Studio Installer,点击对应版本后的“修改”,打开如下窗口,发现这两个组件确实没装!
勾选组件安装完,重启,再试,还是找不到,但在C:\Program Files (x86)\Windows Kits\10\Include下有缺少的头文件,但就是找不到!!!
T_T,继续……
3.添加头文件包含。
既然我有这个文件,但环境找不到,那是不是这个路没有指明呢,基于这个朴素的思想,我打开了工程属性页,如下图所示:
点击库目录右侧的编辑按钮,查看当前包含的库目录,确认如下目录是否包含(具体路径需要根据自己的情况定):
// 具体的版本号要根据自己的修改哦
C:\Program Files (x86)\Windows Kits\10\Include\10.xxxxx\ucrt
C:\Program Files (x86)\Windows Kits\10\Include\10.xxxxx\um
C:\Program Files (x86)\Windows Kits\10\Include\10.xxxxx\shared
C:\Program Files (x86)\Windows Kits\10\Include\10.xxxxx\winrt
C:\Program Files (x86)\Windows Kits\10\Include\10.xxxxx\cppwinrt
添加完后就成了这样:
点击包含目录右侧的编辑按钮,查看当前包含的目录,确认如下目录是否包含(具体路径需要根据自己的情况定):
// 具体目录要根据自己的修改哦
C:\Program Files (x86)\Windows Kits\10\lib\10.xxxxx\ucrt\x86
C:\Program Files (x86)\Windows Kits\10\lib\10.xxxxx\um\x86
添加完后就成了这样:
修改完后,重启、重新编译、重新创建工程,依然找不到T_T,继续……
4.安装Windows10 SDK
再次回到Visual Studio Installer窗口,在工程负荷页面的右侧查看“通用Windows平台开发”下的选项,勾选“Windows10 SDK(10.0.xxxxx)”,安装。
安装完毕后,再次编译竟然好了,不懂这个可选的SDK与已经安装的SDK有啥区别,反正好使了,希望你不要遇到这个坑。
至此,终于能编译好使了。。。
5.参考资料
感谢网友的慷慨分享~
关于visual studio 2019编译时各种头文件缺失的问题_vs studio x64头文件不完整_哇吖吖的博客-CSDN博客关于VS2017缺少头文件的解决办法_期待_15554169的博客-CSDN博客关于visual studio 2019编译时各种头文件缺失的问题_vs studio x64头文件不完整_哇吖吖的博客-CSDN博客