Не удается найти corecrt.h: $(UniversalCRT_IncludePath) неверно
Я только что установил Visual Studio 2015 на свой рабочий ноутбук с Windows 10.
Я клонировал репозиторий с решением, созданным с помощью той же версии Visual Studio (обновление 3) на другом ПК, всегда с Windows 10.
Когда я пытаюсь построить решение на своем ноутбуке, я получаю следующую ошибку:
c:\program files (x86)\microsoft visual studio 14.0\vc\include\crtdefs.h(10): fatal error C1083: Cannot open include file: 'corecrt.h': No such file or directory
На этой странице я прочитал, что я должен добавить $(UniversalCRT_IncludePath)
к моим путям включения, но даже в этом случае я получаю ту же ошибку.
Я проверил и $(UniversalCRT_IncludePath)
относится к этому пути:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt
Этот путь отсутствует на моем ноутбуке. Вместо этого у меня есть этот:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt
Таким образом, кажется, что версия окна отличается. Вероятно, это правда, потому что на моем ноутбуке я не установил обновление Windows 1511, в то время как на другом компьютере все установлено правильно.
Мой вопрос, как я могу обратиться к corecrt.h
файл в обоих компьютерах без путаницы с путями. Я хотел бы избежать жесткой связи этих путей, потому что они зависят от компьютера. и я не понимаю, почему в моем ноутбуке путь неправильный, учитывая, что он должен зависеть от системы, а не быть связан с решением.
Как я могу решить эту проблему? Я знаю, что могу обновить свой ноутбук до той же версии Windows, но я хотел бы избежать этого по многим причинам.
-- РЕДАКТИРОВАТЬ
Я заметил, что у меня есть этот путь:
C:\Program Files (x86)\Windows Kits\8.1\Include\10.0.10240.0\ucrt
Имеет то же самое 10.0.10240.0
версия, но относится к другой версии Windows Kit, так что, возможно, есть некоторые проблемы в этом случае. На моем ноутбуке также установлена Visual Studio 2013, так что, возможно, он может быть получен из него, но я не могу удалить его, потому что я поддерживаю другой проект с Visual Studio 2013 и пока не могу удалить его.
Может быть, в папке Visual Studio 2015 я могу явно установить $(UniversalCRT_IncludePath)
в каком-то файле.bat (vcvarsall.bat или similiar), но я не знаю, какой файл и в какой позиции.
15 ответов
Для Visual Studio 2017 мне пришлось:
- Запустите установщик Visual Studio.
- Выберите кнопку Изменить.
- Перейдите на вкладку "Отдельные компоненты".
- Прокрутите вниз до "Компиляторы, инструменты сборки и среды выполнения".
- Галочка "Windows Universal CRT SDK".
- Установить.
Вы, вероятно, уже исправили это, но если кто-то еще придет, я решил это, следуя совету здесь.
В основном установите следующие системные переменные среды:
INCLUDE="C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt"
LIB="C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x64"
Вероятно, есть лучший способ сделать это наилучшим образом, но просто исправить это очень быстро, это сработало отлично.
У меня такая же проблема. Я попробовал ответы здесь. Это не сработало на 100%. Я обнаружил, что набор инструментов VC++ 2015 (x86, x64) необходим для версии Community Edition 2017 (которую я сейчас использую), но без добавления ссылок include или lib.
С наилучшими пожеланиями.
Возможно, при установке Visual Studio чего-то не хватало. Вы можете проверить, не забыли ли вы выбрать набор инструментов VC++.
Control Panel
->All Control Panel Items
->Programs and Features
->Visual studio 2015
- Нажмите
change/uninstall
- Выбрать
VC++2015 toolset(x86,x64)
и установить.
Для Visual Studio Community 2017 RC(15.0.26206.0) имя дополнительного инструмента: VC++ 2017 v141 toolset(x86,x64)
:
Попробуйте проверить свойства проектов (Меню Проект> Свойства). Под Конфигурационными свойствами> Общие, затем проверьте Набор инструментов платформы и версию Windows SDK (если используете Набор инструментов платформы> VS2015) После установки Набор инструментов платформы = VS2017 и Версия Windows SDK = 10.xx это работало для меня.
Причиной ошибки может быть то, что у вас нет обновленной версии Windows 10 SDK
Вы также можете загрузить и установить Windows 10 SDK автономно,
используя эту ссылку Windows 10 SDK, и добавьте его в системный путь
Надеюсь, поможет.
I find Reason that : Windows Registry
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots]
"KitsRoot10"="C:\\Program Files\\Windows Kits\\10\\"
but in Actually
"KitsRoot10"="C:\\Program Files (x86)\\Windows Kits\\10\\"
"AppVerifier64BitAutomationRoot"="C:\\Program Files\\Application Verifier\\"
"KitsRoot81"="C:\\Program Files (x86)\\Windows Kits\\8.1\\"
Windows SDK, который вы выбрали в своем проекте , не установлен.
Либо установите нужный SDK, либо выберите один из установленных (обратите внимание: при выборе опции <наследовать от родителя> по умолчанию будет 8.1, которая не устанавливается по умолчанию в VS 2017+)
Чтобы установить Windows SDK, запустите установщик и перейдите к Отдельным компонентам и прокрутите до самого низа:
За Visual Studio 2015 Enterprise
Я решил проблему так же, как parsley72:
1. Run the Visual Studio Installer;
2. Select Modify button;
3. Go to "Windows and Web Development";
4. Tick "Universal Windows App Development Tools";
5. Install.
Я только что получил эту ошибку при компиляции PyTorch в Windows и установке Windows Universal CRT SDK, но это не помогло. Кажется, что после возни вокруг него есть две причины:
- Убедитесь, что вы запускаете vcvarsall.bat. Когда вы запускаете VS2017 x64 Native Command Prompt, он запускает этот bat-файл.
- Установите для vcvars_ver правильную версию, которая установлена на вашем компьютере. Чтобы найти версию, которую вы имеете, перейдите на
%PROGRAMFILES(X86)%\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\
, Внутри этой папки вы увидите папку, такую как14.13.26128
, Итак, вы установилиvcvars_ver
до 14,13.
Ниже фрагмент в моем командном файле показывает выше два шага:
set "VS150COMNTOOLS=%PROGRAMFILES(X86)%\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build"
call "%VS150COMNTOOLS%\vcvarsall.bat" x64 -vcvars_ver=14.13
Мне помогает этот параметр в Visual Studio:
- в свойствах проекта -> Каталоги VC++ -> Включить каталоги -> открыть для редактирования.
- check checkbox Наследовать от родительского или проекта по умолчанию
Я решаю эту ошибку следующим 3 шагом.
1) Все файлы из:
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\um\x86
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt\x86
Скопировать в:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\lib\x86
2) Все файлы из:
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\um\x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt\x64
Скопировать в:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\lib\x64
3) Все файлы из:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt
Скопировать в:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\include
Затем я перестраиваю свой проект и все работает правильно
Либо добавьте более старый Windows SDK (например, версия 8.1 / Universal) на свой компьютер (как описано в parsley72), либо измените целевое назначение Project(s), чтобы использовать один из Windows SDK, установленных на вашем компьютере.
Я только столкнулся с этим с VS2017, и переориентация работала. Хотя я все еще жду ответа о том, имеет ли негативное влияние нацеливание на более новую версию Windows SDK.
Переустановите Windows 10 SDK, если вам не хватает Windows SDK или если его содержимое изменилось, эта ошибка всплывет, это случилось со мной после установки WDK
У меня нет опыта работы с VC++, но я должен собрать ta-lib для проекта на Python. Поскольку я не хочу касаться чего-либо в VC Studio, но у меня есть опыт работы с обычным программированием на C под Unix, я использовал подход добавления пути включения непосредственно в Makefile; например:
INCPATH = -I ".......... \ include" -I ".......... \ src \ ta_common" -I ".......... \ src \ ta_abstract "-I".......... \ src \ ta_abstract \ tables "-I".......... \ src \ ta_abstract \ frames " -I" C: \ Программные файлы (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt" -I"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include"
В подкаталогах есть несколько Make-файлов, поэтому мне пришлось вносить изменения в каждый из них, но у меня все работает нормально.