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\
Ответы
Ответ 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.