LLVM C ++ IDE для Windows


92

Чи існує якась IDE C / C ++ для Windows, яка інтегрована з компілятором LLVM (і аналізатором Clang C / C ++), як це робить сучасний Xcode.

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

Так, Clang не міг бути використаний із складним кодом C ++, але транк Clang вже може компілювати сам LLVM. Тому мені цікаво, чи є в розробці чи в бета-версіях якісь IDE LLVM.

Так, я можу використовувати Clang як інший компілятор із GCC-сумісними середовищами розробки. Але чи існує яка-небудь IDE, яка інтегрована з Clang? Clang має інший формат виводу, тому IDE повинна проаналізувати його. Clang може забезпечити аналіз джерел IDE. У Clang є параметр аналізу, який повинен підтримуватися в IDE. Погляньте, наприклад http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html

І найбільш розшукувана особливість Clang - це розумне автоматичне заповнення, тому IDE може пропонувати лише синтаксично-правильні варіанти, наприклад, перераховувати лише поля цієї структури, класу.

Результати: (об'єднано з відповідей):


3
Цікаво, чи в майбутньому Emacs отримає підтримку Clang. До речі, тут є другорядний режим emacs llvm.org/svn/llvm-project/cfe/trunk/utils/..., хоча я сам його не тестував.
ustun

Код :: Блокує роботи з Clang.
James Harper

Відповіді:


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

ОНОВЛЕННЯ: Плагін застарілий. Натомість встановіть "Підтримка збірки компіляторів LLVM-сімейства C / C ++" у розділі "Мови програмування", використовуючи офіційний сайт оновлення Eclipse, наприклад http://download.eclipse.org/releases/mars


Привіт. Радий бачити вас тут! Ви кажете: "Бінарні файли MinGW надаються для LLVM та інтерфейсів" - чи можете ви додати (тут чи на сайті коду Google) посилання на mingw-файли LLVM?
osgx

1
Також про тезу з вашого блогу. clang не для ада або 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 Ден Гоман нещодавно додав завершення коду Clang до vim .

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 ...


Дякую, додано до запитання. Чи можете ви сказати, з якої версії QTcreator підтримується clang?
osgx

1
2.4.1 зробить .. у Linux вам не потрібно додавати ланцюжок інструментів clang вручну .. ось інформація про те, як додати ланцюжок інструментів, якщо ви використовуєте Windows: doc.qt.nokia.com/qtcreator-2.4/ creator-tool-chains.html
Kokizzu,

але він використовує його лише для автоматичного заповнення та синтаксичного аналізу
James Harper


5

Немає жодного для вікон. Але якщо ви хочете розумне автоматичне заповнення, netbeans має одне з найкращих завершень коду для C ++. Він аналізує макроси, загальні контейнери та розумні вказівники. Плюс це забезпечує рефакторинг, вставку коду конструкторів та геттерів та сеттерів. Це працює дуже добре. Однак, оскільки він все ще використовує окремий синтаксичний аналізатор для C ++, він не вловлює стільки помилок, скільки робить компілятор.

Netbeans для Java інтегрований із компілятором, тому він видає помилки та попередження під час введення, а також синтаксично правильне заповнення коду. Отже, мережеві компоненти, швидше за все, в майбутньому інтегруватимуться з clang, щоб забезпечити такі самі функції для C ++.


2
як netbeans аналізує джерело? Який інтерфейс C / C ++ він використовує?
osgx

3
Так, netbeans аналізує саме джерело для завершення коду. Можливо, в майбутньому вони будуть використовувати clang для синтаксичного аналізу, але це ще не інтегровано. Ви можете вибрати різні компілятори для netbeans gcc або clang. Я ще не пробував це з дзвінкою.
Пол Фульц II



4

Чи можу я додати SublimeText 2? У нього вже є плагін SublimeClang, який підтримує інтелектуальне заповнення коду на основі клангу .


Про плагін: "надання пропозицій щодо автоматичного заповнення для C / C ++ / ObjC / ObjC ++. Він також необов’язково проаналізує код, як він набраний, і покаже помилки та попередження."
osgx

ПРИПИНЕНО
Йохан Буле



3

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


1
Але він не зможе використовувати будь-які функції, які є додатковими до стандартного набору інструментів, такі як аналіз коду та заповнення вкладки.
Mooing Duck

3

Немає.

Наразі лише xcode має мінімальну підтримку дзвінків. Якщо ви хочете використовувати статичний аналіз clang у вікнах, вам доведеться це робити через CLI.


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 .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.