我试图在Windows 7 64位上构建增强功能。运行bootstrap给出
execnt.c(29):致命错误C1083:无法打开包含文件:' windows.h':没有这样的文件或目录
和其他一些人。我有visual studio 9.0和我有windows.h的地方在
我安装了SDK,甚至完全重新安装了Visual Studio。我能解决这个问题吗?
答案 0 :(得分:5)
尝试从VS控制台运行boost版本,而不是尝试运行'cmd'。它可能位于VS的开始菜单条目中(过去曾经是这样)。它过去也可以从VS本身的工具中获得,但我认为它们在那里删除了它。
这个版本只是cmd,但它运行的是一个批处理脚本,它设置了一堆非常重要的环境变量。
答案 1 :(得分:2)
以备任何寻找相同错误的人参考
我安装了没有注册机构版权限的visual studio,所以我没有设置任何环境变量,那些在调用cl编译器时提升库/ libxml2等的环境变量
允许自己编辑注册表并卸载/重新安装所有与Visual Studio相关的程序解决了这个问题
答案 2 :(得分:0)
使用您喜欢的管理员权限编辑%VS90COMNTOOLS%vsvars32.bat,例如。
runas /user:Administrator "notepad %VS90COMNTOOLS%vsvars32.bat"
找到
部分:GetWindowsSdkDirHelper
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\Microsoft SDKs\Windows" /v "CurrentInstallFolder"') DO (
if "%%i"=="CurrentInstallFolder" (
将其更改为
:GetWindowsSdkDirHelper
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0a" /v "InstallationFolder"') DO (
if "%%i"=="InstallationFolder" (
当您安装较新版本的Windows SDK时,它会更新HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ CurrentInstallFolder以指向较新版本。
不幸的是,Visual Studio 2008用于设置其路径的批处理文件使用此注册表项来标识Windows SDK的位置,因此不是指向适用于VS2008(6.0a)的Windows SDK的版本,它指向要安装的最新版本。
编辑注册表是一种选择。更好的选择是更改批处理文件,以便从注册表中获取正确的路径,如上所述。