今天安装好Visual Studio Express 2012之后,新建了一个VC++ Win32 Console Application,输入一个简单的 Hello world 代码,竟然编译不过,提示缺少头文件。
fatal error C1083: 无法打开包含文件: 'stdio.h': No such file or directory
在VS安装目录下,VC\include文件夹里面发现只有一个srv.h。确实没有stdio.h这个头文件。
网上搜索一下,在MSDN社区里面也有人遇到类似的问题,请看这个页面:
http://social.msdn.microsoft.com/Forums/en-US/vssetup/thread/6a10d251-8c5b-4590-998f-f1ba0b33eb29
大概的过程是这样:以前安装过Visual Studio 2012的其他版本,然后卸载,然后再安装Express 2012版本的时候就出问题了。貌似VS的一个bug。
在这个页面,找到了解决方案,别人提供的,不是我找到的。但我试验了,确实有效。因此这里翻译整理一下。
名为Heinermann的一个专家发了一段话:
It involves downloading the iso and using this tutorial ( http://devonenote.com/2010/03/uncompress-msi-file/ ) to extract the data from the *.msi installation files, and copying the extracted files manually to their expected locations.
1. 首先,需要下载 Visual Studio Express 2012 的ISO文件(在这个页面 http://www.microsoft.com/visualstudio/chs/downloads)
2. 其次,加载ISO文件,在控制台中进入packages\vc_librarycore86目录;
3. 输入这个命令:
msiexec /a vc_librarycore86.msi TARGETDIR=某个目录
把“某个目录”换成你想保存的目录。这个命令就是把*.msi中的文件解压出来。
4. 现在进入这个目录下面,依次进入 Program Files\Microsoft Visual Studio 11.0\VC,把 crt、include、lib、redist 这4个文件夹里的内容全部复制到VS的安装目录下对应的路径就可以了。