HomeBlogMagic

Fix für MSVC: fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory

Seit geraumer Zeit habe ich in meinen CMake Projekten Probleme gehabt um Applikationen oder auch Libs zu bauen

Immer wieder erhielt ich Fehler über vermeintliche default Header die jeder Kompiler haben sollte:

fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory
fatal error C1083: Cannot open include file: 'crtdbg.h': No such file or directory

Der Fehler wurde bei mir durch 2 Probleme verursacht.

1. CRT hat ein eigenes Paket im Installer

Es hat sich herausgestellt, dass diese Header erst explizit über den Visual Studio Installer installiert werden müssen. Siehe nachfolgendes Bild:

Aktivieren von Windows Universal CRT SDK

2. Der Pfad zu den Windows Kits ist in der Registry falsch

Auf den Fehler bin ich durch einen Eintrag im Visual Studio Forum kommen.

Der Eintrag in der Regsitry sah wie folgt aus:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots]
"KitsRoot10"="C:\\Program Files\\Windows Kits\\10\\"

Richtig wäre aber:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots]
"KitsRoot10"="C:\\Program Files (x86)\\Windows Kits\\10\\"

Dadurch waren alle include und library Pfade falsch.
Dies betraf in meinem Fall nur den Build mit msbuild. Visual Studio hatte bei mir keinen Fehler gebracht.