Как скомпилировать C++ для Windows с clang в Visual Studio 2015

насколько я понимаю, Visual Studio 2015 поставляется с clang. Сначала я думал, что это было только для приложений Android и iOS, но в соответствии с в этой статье также должно быть возможно использовать интерфейс clang++ для программ Windows. Однако, я не могу найти соответствующий пункт.

поэтому не могли бы вы объяснить мне, как я могу изменить используемый компилятор на clang в проекте C++ (в VS2015 RC Community Edition).

4 ответов


начиная с обновления VS2015 1 Вы можете установить шаблон "Clang with Microsoft CodeGen" через новое окно ПРОЕКТА, Перейдите к установленному -> Шаблоны -> Visual C++ -> кросс-платформа.

затем вы сможете выбрать Clang 3.7 с Microsoft CodeGen v140_clang_3_7 набор инструментов платформы на странице свойств любого проекта Windows C++.

Clang имеет совершенно другой набор параметров командной строки, которые он распознает, поэтому при использовании v140_clang_3_7 набора инструментов свойства проекта должны использовать параметры, совместимые с Clang, которые можно распознать как начинающиеся с - вместо /. Например, свойство формат отладочной информации имеет значение " полная отладочная информация (DWARF2) (-g2 -gdwarf-2) "и включить свойство исключений C++, заданное как" Yes (-fexceptions)".

там больше информации в этот блог.

screenshot of the new project window


насколько я понимаю, как Clang, так и GCC поставляются с Android и iOS crossplatform SDKs/tools для Visual Studio 2015.

из того, что я видел, это позволяет мне выбирать только те, у кого есть один из этих кроссплатформенных проектов.

используя проект шаблона для приложения GLES C++, вы получаете следующие параметры:

enter image description here

в то время как для приложения Windows c++ вы получаете диалоговое окно ниже, где вы можете убедитесь, что целевая платформа Windows неактивна и доступна только для чтения, что означает, что у вас, вероятно, есть набор инструментов для каждой целевой платформы, но вы просто не можете изменить его, по крайней мере сейчас. enter image description here

понятия не имею, как превратить обычный проект VS в crossplatform, и, вероятно, вы можете использовать только Android или iOS из коробки с помощью сторонних компиляторов.

возможно, однако, установить Clang в качестве другого инструментария таким же образом, как XP наборы инструментов. Так что, возможно, это просто вопрос того, кто возится с ним и делает его доступным, поскольку он уже установлен.


после прочтения связанного сообщения и особенно комментариев снова, я понял, что это не функция, поставляемая с VS2015 RC, но возможная будущая функция, которая может быть, например, отправлена в SP или (более вероятно) со следующей версией VS.

Как упоминалось sjdowling, самое близкое, что вы можете сделать на данный момент (октябрь 2015, clang 3.7), это загрузить и установить llvm для windows. Это должно дать вам набор инструментов платформы LLVM-vs2014 выбор. Для меня это работает для простых тестовых программ, но, по-видимому, эта версия "clang-vs", похоже, еще не поддерживает исключения. Однако, согласно эти заметки, эта проблема должна быть в основном решена для clang 3.8.


в то время как вышеуказанные решения работают, Они требуют, чтобы вы установили clang, который выключен по умолчанию в установке visual studio 2015. Принятый ответ показывает, как его установить, хотя на следующей странице будет предложено закрыть visual studio, из которой выполняется новый проект.

Если кому-то интересно, Как установить clang, потому что он не отображается в их списке, вот еще одно решение:

  1. Панель управления->Программы->программы и Особенности.
  2. щелкните правой кнопкой мыши на "Microsoft Visual Studio Enterprise 2015" (или "Microsoft Visual
  3. Studio 15 Preview " если у вас есть предварительный просмотр следующей версии Установлена Visual Studio)
  4. Нажать Кнопку "Изменить"
  5. Нажать Кнопку "Изменить"
  6. выберите "Clang с Microsoft CodeGen" - март 2016 освобождать.

https://blogs.msdn.microsoft.com/vcblog/2016/03/31/clang-with-microsoft-codegen-march-2016-released/