Как использовать Visual Studio 2017 Codegen ClangC2 из командной строки?

Я пытаюсь создать простое «пустое основное» приложение с помощью компилятора Clang / C2 из средств сборки Visual Studio 2017 (в системе x64). Я начал ...\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat Оболочка, как и предполагалось, но поняла, что не добавляет путь к компилятору clang.exe, поэтому clang был недоступен Добавлен путь вручную (версия для хоста x64), поэтому clang может быть вызван тоже.

Попытка построить простейшую из возможных программ с простым пустым телом основной функции приводит к следующей ошибке:

clang hello.cc -o hello.exe
error: failed to load c2 (file not found)

c2.dll — это компоновщик MS, который должен вытащить clang для компоновки, однако, похоже, он не может его найти.

Я пытался собрать ту же программу из самой IDE, и она, очевидно, была успешной, поскольку IDE отдельно вызывает компилятор, а не компоновщик (то есть он не полагается на то, что компилятор вызывает компоновщик, а вместо этого вызывает link.exe напрямую)

Кто-нибудь знает, как привести компилятор clang / c2 в рабочее состояние? (Ранее я мог сделать то же самое с Visual Studio 2015)

2

Решение

Проблема в том, что Clang слишком глуп, чтобы найти link.exe в Windows, несмотря на то, что в PATH,

Решением является создание символических ссылок на link.exe сразу после clang.exe исполняемый файл, используя MKLINK команда:

cd "c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\ClangC2\14.10.25903\bin\HostX64"mklink link.exe "c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64\link.exe"
cd "c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\ClangC2\14.10.25903\bin\HostX86"mklink link.exe "c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.10.25017\bin\HostX86\x86\link.exe"

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]