web-dev-qa-db-de.com

SDKDDKVer.h fehlt, aber WinSDK installiert? (Probleme mit C++ - Header)

Ich kehrte vor kurzem mit .NET 4.5 (Visual Studio 2012 professional) zu VC++ zurück, nachdem ich eine Ewigkeit mit Web-Entwickler, Python und c # verbracht hatte. Dies geschah aus verschiedenen irrelevanten Gründen auf einem neuen PC. Ich fühle mich mit der Sprache als Ganzes ziemlich wohl, sie ist in Bezug auf die Syntax wunderschön und ich liebe die Freiheit, das Memory-Management, die Zeiger und die Referenzen. Ich fange wieder mit einer "Hallo Welt" Sache und BAM an! Error.

Da viele andere Leute mit diesem Problem konfrontiert werden, erhalte ich den IntelliSense-Fehler, wenn ich versuche zu kompilieren und auszuführen: 

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

Ich habe auch Visual Studio 2010 (C # Express) installiert, was vielleicht einige meiner Sachen vermasselt. Ich habe bestätigt, dass meine VC++ - Verzeichnisse für incl und lib alle korrekt sind und von Microsoft und praktisch jedem C++ - Entwickler empfohlen werden. Ich habe versucht, die neueste Version von WinSDK (8.1) zu installieren, um den Header und seine gesamte Funktionalität zu erhalten, aber ich bin zu ungefähr 110% überzeugt, dass er nicht vorhanden ist. Ich installiere das SDK für Win7 jetzt in der Hoffnung, dass es sich dort befinden könnte (es dauert jedoch sicher sehr lange.)

Mein PC hat das Problem der endgültigen Blue-Screening-Funktion nur für Probleme, die gelöst werden müssen, wenn die Maschine 15 Minuten lang allein gelassen wird. Vielleicht handelt es sich also um ein Problem mit der Festplatte?

Kann einer von euch helfen? Absolut jeder Kopf, herablassend, naheliegend oder nicht wird eine Tonne geschätzt, und danke, dass Sie trotzdem lesen.

BEARBEITEN: @MichaelBurr hat nach dem Build-Protokoll gefragt und ich konnte es nicht vollständig posten. Ich dachte mir, ich würde es hier hinzufügen.

Build started 14/03/2014 00:34:11.
 1>Project "c:\Users\Brandon\documents\visual studio 2012\Projects\ConsoleApplication4\ConsoleApplication4\ConsoleApplication4.vcxproj" on node 2 (Build target(s)).
 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.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.0\VC\bin\CL.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"Debug\ConsoleApplication4.pch" /Fo"Debug\\" /Fd"Debug\vc110.pdb" /Gd /TP /analyze- /errorReport:Prompt stdafx.cpp
     stdafx.cpp
 1>c:\users\brandon\documents\visual studio 2012\projects\consoleapplication4\consoleapplication4\targetver.h(8): fatal error C1083: Cannot open include file: 'SDKDDKVer.h': No such file or directory
 1>Done Building Project "c:\Users\Brandon\documents\visual studio 2012\Projects\ConsoleApplication4\ConsoleApplication4\ConsoleApplication4.vcxproj" (Build target(s)) -- FAILED.

Build FAILED.

Verstrichene Zeit 00: 00: 00.12

8
Ary-Senpai

Haben Sie das gleiche Problem wie das leere Projekt, das Sie gepostet haben? Ich habe Ihr Projekt unter Windows 7 32 und 64 Bit und XP 32 Bit ausprobiert und erstellt. Alles funktioniert gut , kein Problem beim Finden von SDKDDKVer.h.

Sie müssen ein Problem mit den Pfadeinstellungen Ihrer Abhängigkeiten haben.

Möglicherweise haben Sie die VS-Einstellungen von einer Installation von VS auf eine andere übertragen, möglicherweise von einer 32-Bit- auf eine 64-Bit-Maschine (oder umgekehrt)? Wenn dies der Fall ist, denken Sie daran, dass Ihr Pfad möglicherweise enthält falsche Ordnernamen. Bei 32-Bit-Systemen werden alle Anwendungen standardmäßig unter C:\Programme installiert, während auf einem 64-Bit-Computer alle 32-Bit-Anwendungen in Program Files (x86) installiert werden. Dies ist ein Fall für VS. Alle Include-Dateien befinden sich in:

  • C:\Programme (x86)\Microsoft SDKs\Windows\v7.0A\Include - Der ursprünglichen VS-Installation 
  • C:\Programme (x86)\Microsoft SDKs\Windows\v7.1A\Include - nach der Installation von 7.1 VS SDK

Wenn Sie andere SDK-Pakete installiert haben, verfügen Sie möglicherweise über andere Ordner mit SDKDDKVer.h:

  • C:\Programme (x86)\Windows Kits\8.0\Include\shared
  • C:\Programme (x86)\Windows Kits\8.1\Include\shared
  • C:\Programme\Microsoft SDKs\Windows\v6.0A\Include
  • C:\Programme\Microsoft SDKs\Windows\v7.0\Include
  • C:\Programme\Microsoft SDKs\Windows\v7.1\Include

In Ihrer Projekteinstellung sollten Sie die folgenden Pfade für Includes enthalten:

  • $ (VCInstallDir) include
  • $ (VCInstallDir) atlmfc\include
  • $ (WindowsSDK_IncludePath)

Beachten Sie die verwendeten Makros. Sie sollten von den Standardeinträgen des übergeordneten Elements vererbt werden. Möglicherweise haben Sie die Pfadeinstellungen im Property Manager überschrieben, indem Sie die in der Datei Microsoft.Cpp.Win32.user.props gespeicherten Einstellungen bearbeiten. 

Es kann vorkommen, dass Ihr Projekt aus früheren Versionen von VS konvertiert wurde.

1
JohnCz

Wenn die oben genannten Informationen Ihr Problem nicht lösen konnten, schlage ich folgende Schritte aus meiner VS2013-Erfahrung vor:

  1. Wählen Sie Projekteigenschaften> Konfiguration> VC++ - Verzeichnisse> Fügen Sie Verzeichnisse hinzu und fügen Sie Folgendes hinzu: c:\Programme (x86)\Microsoft SDKs\Windows\v7. 1A\Include
  2. Wählen Sie Projekteigenschaften> Konfiguration> VC++ - Verzeichnisse> Library Verzeichnisse und fügen Sie Folgendes hinzu: c:\Programme (x86)\Microsoft SDKs\Windows\v7. 1A\Lib

Nach dieser Konfiguration hatte ich ein Problem mit dem rc.exe-Verbindungsfehler. Für dieses Problem wird noch etwas benötigt:

  1. copy RC.exe und RcDll.dll Dateien aus C:\Programme (x86)\Microsoft SDKs\Windows\v7.1A\Bin und vorbei an C:\Program Dateien (x86)\Microsoft Visual Studio 12.0\VC\bin Nach all diesen Konfigurationsschritten können Sie einen einfachen erstellen "Hallo Welt!" Beispiel und laufen, wenn Sie Glück haben.
16
Mustafa Kemal

Diese funktionierte für mich: "Dieses Problem hatte ich kürzlich, als ich eine Lösung von VS2010 auf VS2013 konvertierte. Ich habe das Problem gelöst, indem Sie einfach das Kontrollkästchen" Von Eltern- oder Projektvorgaben übernehmen "unter Projekteigenschaften> Konfiguration> VC++ aktivieren Verzeichnisse> Verzeichnisse einschließen für alle Konfigurationen jedes Projekts. "

3

Ich hatte gerade genau dieses Problem. Nachdem ich stundenlang versucht hatte, das Problem zu finden, indem ich verschiedene Pfade suchte und versuchte, sie zu ändern, alle MS-Produkte zu deinstallieren und sie ohne Erfolg neu zu installieren usw., fand ich die Lösung, die Datei C:\Users\{zu öffnen. Benutzer}\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props und ändert sich

<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>

zu

<PropertyGroup />

Ich weiß nicht, wie dieses Problem entstanden ist, aber ich fand die Lösung, indem ich die Datei vom Computer meines Kollegen kopierte, wo alles einwandfrei funktionierte. Das Problem wurde möglicherweise durch die kürzlich erfolgte Installation und Deinstallation von BCGControlBarPro verursacht.

3
Bjerner

Ich weiß, dass es hier mehrere Antworten auf diese Frage gibt, aber ich wollte erklären, was das Problem für mich gelöst hat. Ich suchte und suchte und suchte und fand nicht viel gutes Material. Die Lösung für mich war, mit der rechten Maustaste auf mein Projekt zu klicken, um die Eigenschaften aufzurufen. Auf der Registerkarte "Eigenschaften" habe ich die WindowsSDK-Version in die einzige Version geändert, die ich installiert hatte. Das Problem wurde behoben.

Warum ist das passiert? Ich bin nicht sicher, aber es geschah, nachdem Visual Studio ein Update durchgeführt hatte und nachdem Windows Update den neuesten Build von Windows 10 installiert hatte. Wenn dies der Fall war, stimmte die SDK-Version im Projekt nicht mit dem installierten SDK überein.

Ich hoffe, das erspart jemand in den nächsten Stunden des Suchens!

2
Kenny Blackmon

Die Antwort von Mustafa Kemal ist korrekt. Wenn Sie dieses Verzeichnis und die Bibliothek jedoch nicht für jedes VC++ - Projekt separat hinzufügen möchten, sollten Sie sie als Systemvariablen in den Umgebungsvariablen von Windows definieren und den Computer neu starten. 

Variablenname: WindowsSDK_IncludePath, Variablenwert: c:\Programme (x86)\Microsoft SDKs\Windows\v7.1A\Include. 

und

Variablenname: WindowsSDK_LibraryPath_x86, Variablenwert: c:\Programme (x86)\Microsoft SDKs\Windows\v7.1A\Lib

2
Elnaz Yousefi

Dieses Problem hatte ich kürzlich, als ich eine Lösung von VS2010 auf VS2013 konvertierte. Ich habe das Problem gelöst, indem Sie einfach das Kontrollkästchen " Inherit from parent oder project default " unter Project Properties> Configuration> VC++ - Verzeichnisse> Include Directories für alle Konfigurationen jedes Projekts aktivieren.

1
Shane

Ich verwende 2008, 2010, 1012 und 2013 auf demselben Rechner - Windows 7 und XP 32 und 64-Bit, 7 32-Bit, ohne Probleme.

Versuchen Sie, ein Projekt zu erstellen, das mit einer anderen Version von VS erstellt wurde?

Anscheinend haben Sie ein Problem mit in Ihrem Projekt festgelegten Abhängigkeiten oder ein Problem mit der SDK-Version, das auf die falsche Version eingestellt ist.

Wenn Sie ein anderes Projekt erstellen, zum Beispiel eine dialogbasierte Anwendung; Bleibt das Problem bestehen? Sie müssen keine Batchdatei ausführen. 

  • Öffnen Sie die Projekteigenschaften (klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Eigenschaften).

  • Wählen Sie unter Konfigurationseigenschaften Allgemein aus

  • Überprüfen Sie das Platform Toolset im rechten Bereich. Es sollte nicht Auf Visual Studio 2008 (V90) festgelegt werden.

Versuchen Sie es neu aufzubauen. Wenn das Problem weiterhin besteht, teilen Sie Ihr Projekt. 

Versehen Sie es mit einem Zip und verwenden Sie einige der Freigabedienste, um es zu posten (zum Beispiel Dropbox).

0
JohnCz

Dies geschieht manchmal, wenn Sie einen Pfad für Ihr Include oder Ihre Bibliothek hinzufügen und die ursprünglichen löschen, die bereits in den Projekteigenschaften geschrieben wurden.

Sie sollten den alten Pfad für Include- oder Lib-Verzeichnisse nicht entfernen, z. B. $ (VCInstallDir) include. $ (VCInstallDir) altmfc\include; $ (WindowsSdkDir) include; $ (FrameworkSDKDir)\include;

Dasselbe gilt für lib-Pfad, indem Sie einfach jedes Include durch lib ersetzen.

Freundliche Grüße

0
shaima alsalihy