LLVM C ++ IDE dla Windows

92

Czy istnieje środowisko C / C ++ IDE dla systemu Windows, które jest zintegrowane z kompilatorem LLVM (i analizatorem Clang C / C ++), tak jak robi to nowoczesny Xcode.

Mam Dev-Cpp (używa przestarzałego GCC) i Code :: Blocks (z niektórymi GCC). Ale GCC daje mi bardzo tajemnicze komunikaty o błędach. Chcę otrzymywać bardziej przyjazne dla użytkownika komunikaty o błędach z interfejsu Clang.

Tak, Clang nie mógł być używany ze złożonym kodem C ++, ale trunk Clang już może skompilować sam LLVM. Zastanawiam się, czy jest jakieś środowisko LLVM IDE w fazie rozwoju lub w wersji beta.

Tak, mogę używać Clang jako innego kompilatora z IDE kompatybilnymi z GCC. Ale czy istnieje IDE zintegrowane z Clang? Clang ma inny format wyjściowy, więc IDE musi go przeanalizować. Clang może zapewnić analizę źródeł IDE. Clang ma opcję analizy, która musi być obsługiwana w środowisku IDE. Spójrz, np. Http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html

A najbardziej poszukiwaną cechą Clang - jest inteligentne autouzupełnianie, więc IDE może sugerować tylko warianty poprawne składniowo, np. Wyświetlać tylko pola tej struktury, klasy.

Wyniki: (połączone z odpowiedzi):

osgx
źródło
3
Zastanawiam się, czy w przyszłości Emacs zyska wsparcie dla Clanga. Przy okazji jest tutaj tryb pomocniczy emacsa llvm.org/svn/llvm-project/cfe/trunk/utils/, chociaż sam go nie testowałem.
ustun
Code :: Blocks współpracuje z Clang.
James Harper

Odpowiedzi:

59

LLVM jest obsługiwany w Eclipse CDT przez wtyczkę ( llvm4eclipsecdt ). O ile wiem, jest to jedyne IDE obsługiwane przez Windows obsługujące LLVM . Jestem głównym autorem wtyczki, więc możesz zadawać pytania z nią związane.

Wtyczka oferuje podstawowe funkcje kompilacji Clang i llvm-gcc oraz obsługuje systemy Linux i Windows (z Cygwin i MiNGW). Narzędzia LLVM, takie jak asembler, archiwizator, konsolidator i kompilator statyczny (llc), są konfigurowane i można je dostosowywać za pośrednictwem interfejsu użytkownika. Wtyczka oferuje wszystkie korzyści, które może zaoferować IDE, takie jak łatwa konfiguracja i budowanie za pomocą jednego działania.

Jedyną wadą jest to, że nie jest jeszcze gotowy, ponieważ brakuje mu niektórych zaawansowanych funkcji, które może zaoferować LLVM, takich jak analiza Clang i inteligentne automatyczne uzupełnianie. Wtyczka również nie została dobrze przetestowana i może nie działać idealnie, dlatego mam nadzieję, że uda mi się uzyskać opinie użytkowników za pośrednictwem listy mailingowej znalezionej w witrynie rozwoju kodu Google (wymienionej poniżej). Żałuję, że nie mam czasu na dalsze rozwijanie tego. Rozwijam go tylko w wolnym czasie, który jest bardzo ograniczony. Zapraszam wszystkich programistów do udziału i wniesienia wkładu w projekt.

Witryna deweloperska:
http://code.google.com/p/llvm4eclipsecdt/
https://github.com/TuononenP/llvm4eclipsecdt

Rynek Eclipse (w 100% darmowy i open-source):
http://marketplace.eclipse.org/content/llvm-toolchain-eclipse-cdt

UPDATE: wtyczka jest przestarzała. Zamiast tego zainstaluj „C / C ++ LLVM-Family Compiler Build Support” w obszarze Języki programowania, korzystając z oficjalnej witryny aktualizacji Eclipse, np. Http://download.eclipse.org/releases/mars

Petri Tuononen
źródło
Cześć. Cieszę się, że Cię tu widzę! Mówisz "Pliki binarne MinGW są dostarczane dla LLVM i interfejsów" - czy możesz dodać (tutaj lub w witrynie Google Code) łącze do plików binarnych mingw LLVM?
osgx
1
Również o pracy dyplomowej z Twojego bloga. clang nie jest dla ada ani fortran: „W przypadku innych języków, w tym Java, Fortran i Ada, LLVM pozostaje zależny od GCC”
osgx
2
Możesz pobrać binaria mingw dla LLVM 2.9 stąd: llvm.org/releases/download.html#2.9
Petri Tuononen
1
Dobra uwaga: masz rację, że LLVM-GCC jest dla innych języków. Powinienem był napisać, że „LLVM kompiluje się” bez wzmianki o konkretnym interfejsie, ale usunę Fortran i Adę z abstraktu.
Petri Tuononen
Możesz także zintegrować kompilator LLVM z Microsoft VS. Oto link llvm.org/docs/GettingStartedVS.html . mam nadzieję że to pomoże.
Krishna Oza
21

Współtwórca LLVM, Dan Gohman, niedawno dodał uzupełnianie kodu Clang do vima .

http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/vimrc jest przeznaczony do użycia przy tworzeniu samego LLVM i pomaga w stylu kodowania LLVM, ale fragment kodu uzupełniający powinien być łatwy do wyodrębnienia .

Tak, tak, vim nie jest IDE, ale warto o nim wiedzieć.

[edytuj] https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el zapewnia podobną opcję dla emacsa .

omantyka
źródło
11

Qt Creator współpracuje również z Clang ...

Kokizzu
źródło
Dzięki, dodane do pytania. Czy możesz powiedzieć, z której wersji QTcreator jest wsparcie dla clang?
osgx
1
2.4.1 wystarczy… na Linuksie nie musisz ręcznie dodawać łańcucha narzędzi clang .. oto informacje, jak dodać łańcuch narzędzi, jeśli używasz systemu Windows: doc.qt.nokia.com/qtcreator-2.4/ creator-tool-chains.html
Kokizzu
ale używa go tylko do autouzupełniania i parsowania
James Harper,
9

Teraz dodają obsługę łącza programu Visual Studio . Można go pobrać tutaj .

relaxxx
źródło
5

Nie ma jednego dla okien. Ale jeśli chcesz inteligentnego autouzupełniania, netbeans ma jedno z najlepszych uzupełnień kodu dla C ++. Analizuje makra, kontenery ogólne i inteligentne wskaźniki. Dodatkowo zapewnia refaktoryzację, wstawianie kodu konstruktorów oraz metod pobierających i ustawiających. Działa naprawdę dobrze. Ponieważ jednak nadal używa oddzielnego parsera dla C ++, nie wyłapuje tylu błędów, co kompilator.

Netbeans dla java jest zintegrowany z kompilatorem, więc wyświetla błędy i ostrzeżenia podczas pisania, a także poprawne składniowo uzupełnianie kodu. Tak więc, jest bardzo prawdopodobne, że w przyszłości netbeans zintegruje się z clang, aby zapewnić ten sam rodzaj funkcji dla C ++.

Paul Fultz II
źródło
2
jak netbeans analizuje źródło? Którego interfejsu C / C ++ używa?
osgx
3
Tak, netbeans analizuje źródło w celu uzupełnienia kodu. Być może w przyszłości użyją clang do parsowania, ale nie zostało to jeszcze zintegrowane. Możesz wybrać różne kompilatory dla netbeans gcc lub clang. Nie próbowałem jeszcze tego z brzękiem.
Paul Fultz II
5

Obsługa LLVM została dodana do Eclipse : http://marketplace.eclipse.org/node/28778

Leo Hippeläinen
źródło
2
Dobrze, ale czy automatyczne uzupełnianie clang jest zintegrowane z zaćmieniem?
osgx,
4

Czy mogę dodać SublimeText 2? Ma już wtyczkę SublimeClang, która obsługuje inteligentne uzupełnianie kodu oparte na clang.

Hindol
źródło
O wtyczce: „Zapewnia sugestie automatycznego uzupełniania dla C / C ++ / ObjC / ObjC ++. Opcjonalnie analizuje również kod w trakcie wpisywania i wyświetla błędy i ostrzeżenia”
osgx
ZAPRZESTANO
Johan Boule
1
Zamiast tego EasyClangComplete for Sublime 3.
słoneczny księżyc
3

Clang ma sterownik, który (przynajmniej powinien być) bezpośrednim substytutem gcc, więc w zasadzie każde IDE, które może używać gcc jako kompilatora, powinno być w stanie używać clang jako kompilatora (chociaż nie testowałem go osobiście, więc nie mogę ręczyć za to, jak dobrze to działa).

Jerry Coffin
źródło
2
Ale nie będzie można korzystać z żadnych funkcji, które są dodatkiem do standardowego zestawu narzędzi, takich jak analiza kodu i uzupełnianie kart.
Mooing Duck
3

Nie.

Tylko xcode ma obecnie minimalne wsparcie dla clang. Jeśli chcesz używać analizy statycznej clang w systemie Windows, musisz to zrobić za pośrednictwem interfejsu wiersza polecenia.

Arelius
źródło
6
Tego rodzaju odpowiedzi / pytania powinny mieć czas. (
Metatemat
Hernán Eche, tak, ale w każdej chwili mogę zmienić zaakceptowaną odpowiedź. Możesz mnie zapytać, czy uważasz, że sytuacja się zmieniła, a odpowiedź brzmi „Tak”
osgx
3

KDevelop dla Windows to kolejna opcja. Będąc wciąż na wczesnym etapie (obecnie musisz skonfigurować środowisko, aby móc samodzielnie używać kompilatorów MSVC / MinGW), jest ono użyteczne i zapewnia niesamowite zrozumienie kodu IDE do systemu Windows.

https://www.kdevelop.org/features

kfunk
źródło
1

Niezupełnie IDE, ale coś w rodzaju skrzyżowania między IDE i zwykłym edytorem, użyteczna alternatywa dla tych, którzy nie mają nic przeciwko ręcznemu pisaniu konfiguracji: kombinacja edytora Sublime Text 3 i wtyczki EasyClangComplete (plus Clang Format, aby zachować porządek w kodzie i schludnie). Działa dobrze w systemie Windows dzięki niedawnym staraniom, aby uczynić LLVM kompatybilnym z MSVC ( Clang-cl jest również w stanie generować kompatybilne pliki PDF od 2018 r., Co jest kluczowe dla debugowania).

Aktualizacja: od 2019 znacznie lepszą i przyszłościową alternatywą dla EasyClangComplete jest używanie Clangd przez wtyczkę LSP .

słoneczny księżyc
źródło