web-dev-qa-db-fra.com

VS2015 cl Impossible de trouver les bibliothèques CRT (stdio.h, ctype.h etc.) lors de la génération sur la ligne de commande

  • J'ai installé la dernière version de VS2015 Professional.
  • Ouverture de l'invite de commandes Visual Studio et exécution de vcvars32.bat
  • a écrit un simple programme helloworld.cpp (inclut stdio.h et imprime "hello world")
  • essayé cl helloworld.cpp

J'obtiens l'erreur suivante:

c:\test>cl helloworld.cpp
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23026 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.

helloworld.cpp
helloworld.cpp(1): fatal error C1083: Cannot open include file: 'stdio.h': No such file or directory

Les chemins d'inclusion définis par vcvars32.bat sont:

INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Windows Kits\10\include\wdf\ucrt;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um;C:\Program Files (x86)\Windows Kits\10\include\wdf\shared;C:\Program Files (x86)\Windows Kits\10\include\wdf\um;C:\Program Files (x86)\Windows Kits\10\include\wdf\winrt;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Windows Kits\10\include\wdf\ucrt;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um;C:\Program Files (x86)\Windows Kits\10\include\wdf\shared;C:\Program Files (x86)\Windows Kits\10\include\wdf\um;C:\Program Files (x86)\Windows Kits\10\include\wdf\winrt;

Notez que les chemins dans la variable d'environnement sont " C:\Program Files (x86)\Windows Kits\10\include\wdf\winrt; "etc. Cependant, l'emplacement réel des fichiers est C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.\winrt;

Est-ce que je fais quelque chose de mal ici? Toute aide grandement appréciée.

p.s. Mon véritable objectif est de construire la bibliothèque boost 1.58 (mais elle souffre du même problème que ci-dessus, donc je voulais d'abord isoler le problème).

p.p.s. J'ai remarqué les variables d'environnement suivantes. Mais je ne peux pas les changer.

WindowsSDKLibVersion=wdf\
WindowsSDKVersion=wdf\
17
Nilay Kothari

Si vous avez WDK (Kit de pilotes Windows - 10.0.26639) installé, vous rencontrerez ce problème car les chemins d'inclusion sont remplacés par le WDK. Pour que cela fonctionne, vous devez désinstaller le WDK et cela devrait fonctionner.

Jetez un œil au problème de Microsoft Connect - https://connect.Microsoft.com/VisualStudio/feedback/details/1610302/universalcrt-detection-breaks-when-windows-driver-kit-is-installed =

15
AhmedBM

J'ai rencontré un problème similaire sur VS2017 (15.5.5) lors de la création de projets VC++ contre Windows SDK 8.1:

C1083 Impossible d'ouvrir le fichier inclus: 'assert.h': aucun fichier ou répertoire de ce type

Vérification Windows 8.1 SDK and UCRT SDK dans le programme d'installation de VS a résolu le problème. Windows 8.1 SDK and UCRT SDK

4
zwcloud

Dans mon cas, j'ai ajouté ces chemins au chemin d'inclusion supplémentaire:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include; C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include; C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\ucrt; C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\Include\um; C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\partagé; C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um; C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\winrt; $ (IncludePath)

et ajouté ces chemins au chemin lib supplémentaire:

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\um\x86; C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\ucrt\x86; $ ( LibraryPath)

4
전송현