2017-02-11 22 views
1

Я использую Windows 10 в качестве тестового сервера и пытаюсь построить из исходного кода python & C++. Я установил vcbuild 2015 по choco choco windows package managerwindows vC++ Как использовать UniversalCRT_IncludePath и как заставить его работать в cl.exe

Когда я пытаюсь построить источник, я нахожу ошибку.

E:\downloads\Twisted-17.1.0>cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DWIN32=1 -IC:\Python36\include -IC:\Python36\include /Tcsrc/twisted/test/raiser.c /Fobuild\temp.win-amd64-3.6\Release\src/twisted/test/raiser.obj 
raiser.c 

c:\python36\include\pyconfig.h(59): fatal error C1083: Cannot open include file: 'io.h': No such file or directory 

Я не могу найти io.h в моем VC++ включает в себя пути: Но согласно отрывку: Universal CRT

Я найти io.h файл находится в моем C: \ Program Files (x86) \ Windows Kits \ 10 \ Include \ 10.0.10240.0 \ ucrt

Тогда я найти мой универсальный CRT пуст

C:\WINDOWS\system32>set UniversalCRT_IncludePath 
Environment variable UniversalCRT_IncludePath not defined 

Тогда я определяю эту переменную envirnoment:

E:\downloads\Twisted-17.1.0> set UniversalCRT_IncludePath="C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt" 

Тогда я пытаюсь скомпилировать исходный код еще раз, но я все еще получаю ошибку:

E:\downloads\Twisted-17.1.0>cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DWIN32=1 -IC:\Python36\include -IC:\Python36\include /Tcsrc/twisted/test/raiser.c /Fobuild\temp.win-amd64-3.6\Release\src/twisted/test/raiser.obj 
raiser.c 

c:\python36\include\pyconfig.h(59): fatal error C1083: Cannot open include file: 'io.h': No such file or directory 

Любой знает, как сделать UniversalCRT_IncludePath работает в среде командной строки, как cl.exe пытаются используйте эту переменную и включите ее, включая default C++, включая путь.

+0

@HarryJohnston Это не дублируется, мой вопрос касается UniveersalCRT_IncludePath – user504909

+0

Моя ошибка, извините. –

+1

Если вы используете ярлык командной строки Developer Command, соответствующий каталог указан в переменной среды INCLUDE. Если вы настраиваете свою среду вручную, вы, вероятно, можете сделать то же самое или перечислить каталог как аргумент командной строки, как предлагает Бен. –

ответ

1

Нет ничего особенного в области UniversalCRT_IncludePath до cl.exe.

Переменная MSBuild под этим именем (не такая же, как переменная окружения или переменная оболочки) используется шаблонами New-Project Wizard для Universal CRT для вычисления командной строки для перехода на cl.exe.

Поскольку вы вызываете компилятор вручную, вы должны просто добавить переключатель /I с этим каталогом и не беспокоиться ни о какой переменной окружения, которую компилятор не ищет в любом случае.