SDKDDKVer.h отсутствует, но WinSDK установлен? (проблемы с заголовком c++ )

поэтому я недавно вернулся к VC++ с .NET 4.5 (Visual Studio 2012 professional) из-за различных неуместных причин на новом ПК, проведя вечность с web dev, python и c#. Я довольно комфортно с языком в целом, это f**король красиво с точки зрения синтаксиса, и я люблю свободу управления памятью, указатели и ссылки. Я снова начинаю с" hello world " и БАМ! Ошибка.

Как много других людей получают с этой проблемой, я получаю Ошибка IntelliSense при попытке компиляции и запуска:

cannot open source file "SDKDDKVer.h"" and the fatal error: "error C1083: Cannot open include file: 'SDKDDKVer.h': No such file or directory

у меня также установлена Visual Studio 2010 (C# Express), возможно, это испортит некоторые из моих вещей. Я подтвердил, что мои каталоги VC++ для incl и lib верны и рекомендованы Microsoft и практически любым разработчиком C++. Я попытался установить самый последний WinSDK (8.1), чтобы получить заголовок и все его функции, но я уверен, что 110% его там нет. Я установка SDK для Win7 прямо сейчас в надежде, что он может находиться там (это, конечно, займет много времени.)

Мой компьютер имеет проблему окончательно синего скрининга только для любой проблемы, которая будет решена при выходе из машины в течение 15 минут, так что, может быть, это проблема жесткого диска?

может кто-нибудь помочь? Абсолютно любые головы, снисходительные, очевидные или нет, будут оценены тонной, и спасибо за чтение в любом случае.

EDIT: @MichaelBurr попросил журнал сборки, и я не удалось опубликовать его полностью внизу, поэтому я решил добавить его здесь.

Build started 14/03/2014 00:34:11.
 1>Project "c:UsersBrandondocumentsvisual studio 2012ProjectsConsoleApplication4ConsoleApplication4ConsoleApplication4.vcxproj" on node 2 (Build target(s)).
 1>C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V110Microsoft.CppBuild.targets(344,5): warning MSB8003: Could not find WindowsSDKDir variable from the registry.  TargetFrameworkVersion or PlatformToolset may be set to an invalid version number.
 1>ClCompile:
     C:Program Files (x86)Microsoft Visual Studio 11.0VCbinCL.exe /c /ZI /nologo /W3 /WX- /sdl /Od /Oy- /D WIN32 /D _DEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yc"stdafx.h" /Fp"DebugConsoleApplication4.pch" /Fo"Debug" /Fd"Debugvc110.pdb" /Gd /TP /analyze- /errorReport:prompt stdafx.cpp
     stdafx.cpp
 1>c:usersbrandondocumentsvisual studio 2012projectsconsoleapplication4consoleapplication4targetver.h(8): fatal error C1083: Cannot open include file: 'SDKDDKVer.h': No such file or directory
 1>Done Building Project "c:UsersBrandondocumentsvisual studio 2012ProjectsConsoleApplication4ConsoleApplication4ConsoleApplication4.vcxproj" (Build target(s)) -- FAILED.

ошибка сборки.

Время Истекло 00: 00: 00.12

9 ответов


У вас есть та же проблема, что и пустой проект, который вы разместили? Я пробовал и построил ваш проект с помощью Windows 7 32 и 64 бит и XP 32 бит. Все сборки в порядке, нет проблем с поиском SDKDDKVer.h.

У вас должны быть проблемы с настройками пути зависимостей.

возможно, что Вы перенесли настройки VS с одной установки VS на другую, возможно, с 32-битной на 64-битную (или наоборот) машину? Если это так, помните, что ваш путь может включите неправильные имена папок. Для 32-разрядной системы все приложения устанавливаются по умолчанию C:\Program файлы, в то время как на 64-разрядной машине все 32-битные приложения устанавливаются в Program Files (x86). Это случай для VS. Все файлы include находятся в:

  • C:\Program файлы (x86)\Microsoft SDKs\Windows\v7.0A\включить - оригинал VS установка
  • C:\Program файлы (x86)\Microsoft SDKs\Windows\v7.1A\Include-после установки 7.1 VS SDK

Если у вас есть другие установленные пакеты SDK у вас могут быть другие папки с SDKDDKVer.h:

  • C:\Program файлы (x86)\Windows Kits\8.0\Include\shared
  • C:\Program файлы (x86)\Windows Kits\8.1\Include\shared
  • C:\Program файлы\Microsoft SDKs\Windows\v6.0A\Include
  • C:\Program файлы\Microsoft SDKs\Windows\v7.0\Include
  • C:\Program файлы\Microsoft SDKs\Windows\v7.1\Включить

в настройках Вашего проекта вы должны есть следующие пути включает в себя:

  • $(VCInstallDir)включить
  • $(VCInstallDir)atlmfc\include
  • $(WindowsSDK_IncludePath)

макросы, обратите внимание, используется. Они должны быть унаследованы от родительских setrtings по умолчанию. Возможно, вы переопределили параметры пути в диспетчере свойств, изменив параметры, сохраненные в Microsoft.СРР.С Win32.пользователь.файл props.

возможно, это произошло, если ваш проект был преобразован из более ранних версий VS.


если вышеуказанная информация не смогла решить вашу проблему, я предлагаю следующие шаги из моего опыта VS2013:

  1. выберите Свойства проекта>конфигурация>каталоги VC++>включить Каталоги и добавить, что: c:\Program файлы (x86)\Microsoft SDKs\Windows\v7.1A\Include
  2. выберите Свойства проекта>конфигурация>каталоги VC++>библиотека Каталоги и добавить, что: c:\Program файлы (x86)\Microsoft Пакет SDK для Windows\\В7.\1А Либ

после этой конфигурации у меня была проблема с rc.ошибку ССЫЛКА. Для этой задачи необходимо еще одно:

  1. скопировать RC.exe и RcDll.dll файлы файлы C:\Program Файлы (для x86)\Microsoft пакет SDK папке\Windows\В7.\1А ОГРН и мимо них к C:\Program Файлы (x86)\Microsoft Visual Studio 12.0\VC\bin после всего этого действия по настройке, вы можете построить простой "Привет Мир!" образец и если Вам ПОВЕЗЕТ.

у меня просто была эта точная проблема. После нескольких часов и часов в попытке найти проблему, глядя на разные пути и пытаясь изменить их, удалить все продукты MS и переустановить их и т. д. без какого-либо успеха я нашел решение, чтобы открыть файл C:\Users\{пользователь}\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.СРР.С Win32.пользователь.реквизит и изменение

<PropertyGroup>
  <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;C:\Program Files (x86)\BCGSoft\BCGControlBarPro\BCGCBPro;C:\Program Files (x86)\BCGSoft\BCGControlBarPro\BCGCBPro</IncludePath>
  <LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;C:\Program Files (x86)\BCGSoft\BCGControlBarPro\bin;C:\Program Files (x86)\BCGSoft\BCGControlBarPro\bin</LibraryPath>
</PropertyGroup>

to

<PropertyGroup />

Я не знаю, как возникла эта проблема, но я нашел решение путем копирования файл с машины моего коллеги, где все работало нормально. Проблема может быть вызвана недавней установкой и удалением BCGControlBarPro...


Это сработало для меня: "недавно у меня была эта проблема, когда я преобразовал решение из VS2010 в VS2013. Я решил это, просто установив флажок "наследовать от родительских или проектных значений по умолчанию" в разделе свойства проекта>конфигурация>каталоги VC++>включить каталоги для всех конфигураций каждого проекта."


ответ Мустафы Кемаля правильный, но если вы не хотите добавлять этот каталог и библиотеку для каждого проекта VC++ отдельно, вы должны определить их как системные переменные в переменных среды Windows, а затем перезагрузить компьютер.

Имя Переменной: WindowsSDK_IncludePath, Переменное значение: c:\Program файлы (x86)\Microsoft SDKs\Windows\v7.1A\включить.

и

Имя Переменной: WindowsSDK_LibraryPath_x86, Переменное значение: c:\Program файлы (для x86)\Microsoft пакет SDK папке\Windows\В7.\1А Либ


Я знаю, что здесь есть несколько ответов на этот вопрос, но я хотел объяснить, что решило проблему для меня. Я искал, искал и искал, но не нашел ничего хорошего. Решением для меня было щелкнуть правой кнопкой мыши по моему проекту, перейти к свойствам. На вкладке свойства я изменил версию WindowsSDK на единственную, которую я установил. Это исправило проблему.

Почему это происходит? Я не уверен, но это произошло после того, как Visual Studio выполнила обновление и после того, как Центр обновления Windows установил новейшую сборку Windows 10. Я предполагаю, что когда это произошло, версия SDK в проекте не соответствовала установленному SDK.

Я надеюсь, что это спасет кого-то в будущих часах поиска!


недавно у меня была эта проблема, когда я преобразовал решение из VS2010 в VS2013. Я решил это просто проверка на "наследовать от родителя или от значений по умолчанию для проекта" флажок свойства проекта>конфигурация>каталоги VC++>включить каталоги для всех конфигураций каждого проекта.


Я запускаю 2008, 2010, 1012 и 2013, установленные на одной машине - Windows 7 и XP 32 и 64-бит, 7 32-бит, без каких-либо проблем.

вы пытаетесь построить проект, созданный другой версией VS?

похоже, у вас проблема с зависимостями, установленными в вашем проекте, или у вас проблема с версией SDK, которая установлена в неправильную версию.

Если вы создаете другой проект, например, диалоговое приложение; делает эту проблему упорствовать? Вам не нужно запускать пакетный файл.

  • открыть свойства проекта (правой кнопкой мыши на проекте и выберите свойства.)

  • выберите "Общие" в разделе свойства конфигурации

  • Проверьте набор инструментов платформы на правой панели. Он не должен быть установлен в Visual Studio 2008 (V90).

попробуйте восстановление. Если проблема не устранена, поделитесь своим проектом.

ЗИП и использовать некоторые из общих сервисов для его публикации (например, dropbox).


иногда это происходит, когда вы добавляете путь для своей include или библиотеки и удаляете исходные, которые уже написаны в свойствах проекта.

вы не должны удалять старый путь для каталогов include или lib, таких как $(VCInstallDir)include; $(VCInstallDir)altmfc\include; $(WindowsSdkDir) include; $(FrameworkSDKDir)\include;

то же самое для пути lib просто замените каждый include на lib.

С Наилучшими Пожеланиями