Подтвердить что ты не робот

VS2015 cl Не удается найти библиотеки CRT (stdio.h, ctype.h и т.д.) При сборке в командной строке

  • Я установил последнюю версию VS2015 Professional.
  • Открыл командную строку Visual Studio и запустил vcvars32.bat
  • написал простую программу helloworld.cpp(включая stdio.h и печатает "привет мир" )
  • попробовал cl helloworld.cpp

Я получаю следующую ошибку:

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

Включаемые пути, установленные vcvars32.bat, следующие:

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;

Обратите внимание, что пути в переменной среды: "C:\Program Files (x86)\Windows Kits\10\include\ wdf\winrt;" и т.д. Однако фактическое расположение файлов - C:\Program Files (x86)\Windows Kits\10\include\ 10.0.10240.0\winrt;

Я делаю что-то неправильно здесь? Любая помощь была высоко оценена.

p.s. Моя реальная цель - создать библиотеку boost 1.58 (но она страдает от той же проблемы, что и выше, поэтому сначала захотелось изолировать проблему).

p.p.s. Я заметил следующие переменные среды. Но я не могу их изменить.

WindowsSDKLibVersion=wdf\
WindowsSDKVersion=wdf\
4b9b3361

Ответ 1

Если у вас установлен WDK (Windows Driver Kit - 10.0.26639), вы столкнетесь с этой проблемой, поскольку пути включения будут перезаписаны WDK. Чтобы это сработало, вы должны удалить WDK, и он должен работать.

Взгляните на проблему Microsoft Connect - https://connect.microsoft.com/VisualStudio/feedback/details/1610302/universalcrt-detection-breaks-when-windows-driver-kit-is-installed

Ответ 2

В моем случае я добавил эти пути к дополнительному пути 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\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\shared; 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)

и добавили эти пути в дополнительный путь lib:

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)

Ответ 3

У меня возникла аналогичная проблема на VS2017 (15.5.5) при создании проектов VС++ для Windows SDK 8.1:

C1083 Невозможно открыть файл include: 'assert.h': нет такого файла или каталога

Проверка Windows 8.1 SDK and UCRT SDK в установщике VS решила проблему. Windows 8.1 SDK and UCRT SDK

Ответ 4

У меня была та же проблема с Visual Studio 2015 Community Edition + nvidia Nsight для VS 5.1 + CUDA toolkit 7.5.18 + Windows 7 Enterprise SP1 при попытке создания образцов. 전송 현 ответ решил построить, поэтому я могу подтвердить, что добавление этих путей lib/include приведет к тому, что проект будет работать, если нет другой проблемы. Также убедитесь, что у вас есть полная установка VS IDE, включая необходимые библиотеки времени выполнения/общие библиотеки MSVC и библиотеки разработки Windows.