LLVM C ++ IDE для Windows

92

Есть ли какая-нибудь C / C ++ IDE для Windows, которая интегрирована с компилятором LLVM (и анализатором Clang C / C ++), как это делает современный Xcode.

У меня есть Dev-Cpp (он использует устаревший GCC) и Code :: Blocks (с некоторым GCC). Но GCC дает мне очень загадочные сообщения об ошибках. Я хочу получать более удобные сообщения об ошибках от интерфейса Clang.

Да, Clang нельзя было использовать со сложным кодом C ++, но транк Clang уже может компилировать LLVM. Поэтому мне интересно, есть ли какие-либо IDE LLVM в разработке или в бета-версиях.

Да, я могу использовать Clang как другой компилятор с IDE, совместимыми с GCC. Но есть ли какая-либо IDE, интегрированная с Clang? У Clang другой формат вывода, поэтому среда IDE должна его проанализировать. Clang может обеспечить синтаксический анализ исходников в среде IDE. В Clang есть опция анализа, которая должна поддерживаться в IDE. Взгляните, например, http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html

И самая желанная функция Clang - это умное автозаполнение, поэтому IDE может предлагать только синтаксически правильные варианты, например, перечислять только поля этой структуры, класса.

Результаты: (объединено из ответов):

osgx
источник
3
Интересно, получит ли Emacs поддержку Clang в будущем. Кстати, здесь есть второстепенный режим emacs llvm.org/svn/llvm-project/cfe/trunk/utils/… хотя я сам его не тестировал.
ustun
Code :: Blocks работает с Clang.
Джеймс Харпер

Ответы:

59

LLVM поддерживается в Eclipse CDT через плагин ( llvm4eclipsecdt ). Насколько мне известно, это единственная IDE, поддерживаемая Windows и поддерживающая LLVM . Я являюсь основным автором плагина, поэтому вы можете задавать любые вопросы, связанные с ним.

Плагин предлагает базовую функциональность для компиляции Clang и llvm-gcc и поддерживает Linux и Windows (с Cygwin и MiNGW). Инструменты LLVM, такие как ассемблер, архиватор, компоновщик и статический компилятор (llc), настраиваются и могут быть настроены через пользовательский интерфейс. Подключаемый модуль предлагает все преимущества, которые может предложить IDE, такие как простая настройка и сборка одним действием.

Единственным недостатком является то, что он еще не готов, поскольку ему не хватает некоторых расширенных функций, которые может предложить LLVM, таких как анализ Clang и интеллектуальное автозаполнение. Плагин также плохо протестирован и может работать некорректно, поэтому я надеюсь, что смогу получить отзывы пользователей через список рассылки, найденный на сайте разработки кода Google (указанный ниже). Хотелось бы, чтобы у меня было время развивать его дальше. Я разрабатываю его только в свободное время, которое очень ограничено. Я приветствую всех разработчиков, которые участвуют и вносят свой вклад в проект.

Сайт разработки:
http://code.google.com/p/llvm4eclipsecdt/
https://github.com/TuononenP/llvm4eclipsecdt

Торговая площадка Eclipse (100% бесплатная и с открытым исходным кодом):
http://marketplace.eclipse.org/content/llvm-toolchain-eclipse-cdt

ОБНОВЛЕНИЕ: плагин устарел. Вместо этого установите «C / C ++ LLVM-Family Compiler Build Support» в разделе «Языки программирования» с официального сайта обновлений Eclipse, например, http://download.eclipse.org/releases/mars

Петри Туононен
источник
Здравствуй. Рад видеть тебя здесь! Вы говорите «двоичные файлы MinGW предоставляются для LLVM и внешних интерфейсов» - можете ли вы добавить (здесь или на сайте кода Google) ссылку на двоичные файлы mingw LLVM?
osgx
1
Также о тезисе из вашего блога. clang не для ada или fortran: «Для других языков, включая Java, Fortran и Ada, LLVM остается зависимым от GCC»
osgx
2
Вы можете получить двоичные файлы mingw для LLVM 2.9 отсюда: llvm.org/releases/download.html#2.9
Петри Туононен,
1
Хорошее замечание: вы правы, что LLVM-GCC предназначен для других языков. Я должен был написать, что "LLVM компилируется" без упоминания конкретного интерфейса, но я удалю Фортран и Аду из аннотации.
Петри Туононен
Вы также можете интегрировать компилятор LLVM с Microsoft VS. Вот ссылка llvm.org/docs/GettingStartedVS.html . надеюсь это поможет.
Кришна Оза
21

Участник LLVM Дэн Гохман недавно добавил в vim автозавершение кода Clang .

http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/vimrc предназначен для использования при разработке самого LLVM и помогает со стилем кодирования LLVM, но часть завершения кода должна быть достаточно простой для извлечения .

Да, да, vim не является IDE, но может быть полезно узнать об этом.

[править] https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el предоставляет аналогичный вариант для emacs .

омантика
источник
11

Qt Creator также работает с Clang ...

Kokizzu
источник
Спасибо, добавил в вопрос. Можете ли вы сказать, из какой версии QTcreator есть поддержка clang?
osgx
1
2.4.1 подойдет ... в linux вам не нужно добавлять цепочку инструментов clang вручную ... вот информация, как добавить цепочку инструментов, если вы используете Windows: doc.qt.nokia.com/qtcreator-2.4/ creator-tool -chain.html
Kokizzu
но он использует его только для автозаполнения и синтаксического анализа
Джеймс Харпер
5

Для окон нет. Но если вам нужно интеллектуальное автозаполнение, netbeans предлагает одно из лучших вариантов завершения кода для C ++. Он анализирует макросы, общие контейнеры и интеллектуальные указатели. Кроме того, он обеспечивает рефакторинг, вставку кода конструкторов, методов получения и установки. Это действительно хорошо работает. Однако, поскольку он по-прежнему использует отдельный синтаксический анализатор для C ++, он не улавливает столько ошибок, сколько компилятор.

Netbeans для java интегрирован с компилятором, поэтому он выдает ошибки и предупреждения по мере ввода, а также синтаксически корректное завершение кода. Таким образом, netbeans, скорее всего, в будущем будут интегрированы с clang, чтобы обеспечить те же функции для C ++.

Пол Фульц II
источник
2
как netbeans анализирует источник? Какой интерфейс C / C ++ он использует?
osgx
3
Да, netbeans анализирует сам исходный код для завершения кода. Возможно, в будущем они будут использовать clang для синтаксического анализа, но это еще не интегрировано. Вы можете выбрать разные компиляторы для netbeans gcc или clang. С лязгом еще не пробовал.
Пол Фульц II,
4

Могу я добавить SublimeText 2? У него уже есть плагин SublimeClang, который поддерживает интеллектуальное завершение кода на основе clang.

Хиндол
источник
О плагине: «предоставление предложений автозаполнения для C / C ++ / ObjC / ObjC ++. Кроме того, при необходимости он будет анализировать код по мере его ввода и показывать ошибки и предупреждения».
osgx 08
ПРЕКРАЩЕННЫЙ
Johan Boulé
1
Вместо этого EasyClangComplete для Sublime 3.
солнечная луна
4

LLVM предоставляет сборки моментальных снимков Windows - набор инструментов clang для Visual Studio в качестве установщика Windows. В настоящее время он должен интегрироваться с Visual Studio 2010, 2012 и 2013. Дополнительную информацию можно найти в сообщении блога LLVM. Путь вперед для цепочки инструментов LLVM в Windows .

Павел Былица
источник
3

У Clang есть драйвер, который (по крайней мере, должен быть) прямой заменитель gcc, поэтому практически любая IDE, которая может использовать gcc в качестве своего компилятора, также должна иметь возможность использовать clang в качестве своего компилятора (хотя я лично не тестировал его, так что я не могу ручаться за то, насколько хорошо это работает).

Джерри Гроб
источник
2
Но не сможет использовать какие-либо функции помимо стандартного набора инструментов, такие как анализ кода и автозавершение табуляции.
Mooing Duck
3

Нет.

В настоящее время только xcode имеет минимальную поддержку clang. Если вы хотите использовать статический анализ clang в окнах, вам придется сделать это через интерфейс командной строки.

Арелиус
источник
6
У такого рода ответов / вопросов должен быть тайм-аут .. (мета-тема)
Эрнан Эче
Эрнан Эче, да, но я могу изменить принятый ответ в любое время. Вы можете спросить меня, чувствуете ли вы, что ситуация изменилась, и вы ответите «Да»
osgx
3

KDevelop для Windows - еще один вариант. Хотя он все еще находится на ранних стадиях (в настоящее время вам необходимо настроить среду, чтобы иметь возможность использовать компиляторы MSVC / MinGW самостоятельно), он пригоден для использования и обеспечивает отличное понимание кода среды IDE в Windows.

https://www.kdevelop.org/features

кфанк
источник
1

Не совсем IDE, но своего рода кроссовер между IDE и простым редактором, удобная альтернатива для тех, кто не против писать конфиги вручную: комбинация редактора Sublime Text 3 и плагина EasyClangComplete (плюс Clang Format для аккуратного кода и приборка). Хорошо работает в Windows благодаря недавним попыткам сделать LLVM MSVC-совместимым ( Clang-cl также может генерировать совместимые .PDB с 2018 года, что имеет решающее значение для отладки).

Обновление: с 2019 года гораздо более качественной и перспективной альтернативой EasyClangComplete является использование Clangd через плагин LSP .

солнечная луна
источник