2015-09-11 32 views
13

Я установил Qt SDK с Qt Creator на своей Windows 7. LLVM & Clang установлен также. CMake уже установлен. Затем добавили Clang в качестве компилятора в: Инструменты -> Опции ... -> Build & Run -> CompilersКак использовать Clang как компилятор с Qt Creator в Windows?

Затем я создал комплект Clang. Однако при создании нового проекта (простое консольное приложение) у меня нет возможности выбрать набор Clang. Есть только автоопределенные комплекты MSVC.

Возможно, проблема в том, что «версия Qt» в наборе Clang пуста. Но где взять qmake для этого?

ответ

10

У вас также должна быть соответствующая скомпилированная библиотека Qt с Clang. На странице загрузки нет Clang-сборки Qt для Windows. Поэтому вам нужно подготовить среду сборки на своем компьютере и скомпилировать источник Qt, а затем назначить двоичный путь qmake в поле «Qt version» вашего набора. Или просто используйте другой компилятор для бинарных битов Qt, для которых уже присутствует на странице загрузки.

+1

Как я понимаю, Clang - лучший кроссплатформенный компилятор для C++ в то время, поэтому я бы хотел его использовать. Вы имеете в виду компилировать весь Qt из источника или некоторых частей? Может быть, есть документация по этому процессу? –

+0

Вы должны скомпилировать, по крайней мере, модули, которые хотите использовать, например, ядро, виджеты. Может быть, вы столкнулись бы с множеством проблем при компиляции Qt с Clang на Windows, так как считаются только компиляторы VS и MinGW поддерживаются и протестированы в Windows в документации: http://doc.qt.io/qt-5/windows-requirements.html#sdks-and-compilers – Nejat

+0

@Nejat вы можете быть более конкретными в следующих шагах: * 1) вы должны подготовить среду сборки на своем компьютере * и * 2) скомпилировать источник Qt *, а затем * 3) назначить двоичный путь qmake в поле «Qt version» вашего набора *. – cross

4

В настоящее время Qt поставляется с mkspec под названием win32-clang-msvc. Он использует clang-cl, который производит сборку, которая работает вместе с визуальным компилятором студии.

Я установил последнюю 32-битную инструментальную цепочку LLVM/Clang 5.0, после ее установки она была автоматически обнаружена как C++ - компилятор «LLVM 32bit на основе MSVC2015» от Qt Creator. У меня есть готовая версия Qt «Qt 5.9.2 MSVC2015 32bit», установленная в моей системе, которая использует ту же архитектуру и версию MSVC.

Для использования win32-clang-msvc mkspec я клонировал комплект «Desktop Qt 5.9.2 MSVC2015 32bit». Единственное, что мне пришлось изменить, это ввести win32-clang-msvc в качестве Qt mkspec и выбрать «LLVM 32bit на основе MSVC2015» в качестве компилятора C++. Затем мои проекты строятся с помощью clang-cl.exe вместо cl.exe, используя этот комплект.

+0

Это работает только для 32-битных, MSVC2015 установок? Я пытаюсь настроить clang в среде с 64-битной MSVC2017, и хотя я запускаю оболочку с инструментами MSVC2017 в PATH (т. Е. Cl.exe действительно работает), clang не находит стандартную библиотеку для компиляции базовых приложений. – pwuertz

+0

Я могу только подтвердить, что он работает с MSVC2015 32 и 64 бит, когда я запускаю все из создателя Qt, ничего не меняя в среде. Вы видите/используете инструментальную цепочку LLVM в «build & run» -> compilers-> autodetected? При построении в оболочке могут потребоваться дополнительные пути clang? Может быть альтернативой установке инструментов сборки MSVC2015, но я считаю, что это не обязательно, поскольку 2015 и 2017 годы совместимы с ABI. – FourtyTwo

+0

Я полагаю, что для MSVC2017 в Clang (теперь LLVM6) нет поддержки автоопределения, но мне удалось скомпилировать/связать через командную строку, указав все флаги include и lib для MSVC2017. Тогда есть Qt: QtCreator и QBS автоопределяют Clang даже с LLVM в PATH. Ваш автоопределенный clang, вероятно, обнаружен Qt из-за успешной интеграции MSVC или некоторой другой логики за кулисами. – pwuertz

Смежные вопросы