Ответ 1
Это старый вопрос, и с тех пор многое изменилось. Учитывая, что это обычная проблема при попытке Clang в Windows, она заслуживает обновленного ответа.
Начиная с 2017 года, при создании LLVM 3.9.1 для Windows вам потребуется следующее, чтобы иметь возможность вызывать clang
из вашей оболочки.
Инструменты сборки VС++
У нас до сих пор нет порта libС++ для Windows, поэтому Clang использует библиотеки VС++, а также компоновщик VС++.
Итак, прежде всего вам нужна VС++ Build Tools в вашей системе. Обратите внимание, что у вас уже есть те, которые установлены, если у вас есть Visual С++ IDE.
Переменные среды
Вам нужно сообщить Клану, где найти инструменты построения и его библиотеки.
Вариант 1 (vcvarsall.bat)
Это самый простой и стандартный вариант.
Run
> "%VS140COMNTOOLS%../../VC/vcvarsall.bat" amd64
Замена amd64
вашей целевой архитектурой на Clang, которая может быть x86
, amd64
или arm
. Вы можете заменить %VS140COMNTOOLS%
, если у вас есть другая версия набора инструментов VС++.
В качестве ярлыка вы можете запустить командную строку Visual С++ вместо cmd+vcvarsall
, так как вам нужно вызвать эту партию для каждой открытой командной строки.
Теперь вы можете наслаждаться Clang.
Вариант 2 (вручную)
Если вы не можете запустить vcvarsall.bat
или хотите автоматизировать этот процесс, добро пожаловать, у меня была такая же потребность.
Все следующие переменные окружения автоматически устанавливаются на vcvarsall.bat
, поэтому вы можете запускать их и принимать оттуда свои машинные значения. Я приведу мины в качестве примеров и в надежде, что они будут такими же в других местах.
Установите переменную среды INCLUDE
в C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt;C:\Program Files (x86)\Windows Kits\8.1\include\shared;C:\Program Files (x86)\Windows Kits\8.1\include\um;C:\Program Files (x86)\Windows Kits\8.1\include\winrt;
Установите LIB
в C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64;
. Обратите внимание на компоненты, специфичные для архитектуры!
Для инструментов сборки вы можете либо иметь инструменты на PATH
, либо настроить переменную среды VCINSTALLDIR
. Кланг попробует оба, предпочитая VCINSTALLDIR
.
Установите VCINSTALLDIR
в %VS140COMNTOOLS%../../VC
или добавьте %VS140COMNTOOLS%../../VC/bin/amd64
в PATH
.
Сноска
Все это очень документировано, поэтому требования могут измениться в любое время, но Clang MSVC driver пытается автоматизировать это как можно больше насколько это возможно, путем запроса реестра Windows и многих других трюков, поэтому в будущем это может не потребоваться больше.