LLVM C ++ IDE Windows için


92

Modern Xcode'un yaptığı gibi, LLVM derleyicisi (ve Clang C / C ++ analizörü) ile entegre olan Windows için bazı C / C ++ IDE var mı ?

Dev-Cpp (eski GCC kullanıyor) ve Code :: Blocks (bazı GCC ile) var. Ancak GCC bana çok şifreli hata mesajları veriyor. Clang ön ucundan daha kullanıcı dostu hata mesajları almak istiyorum.

Evet, Clang karmaşık C ++ koduyla kullanılamaz, ancak Clang ana hattı LLVM'nin kendisini derleyebilir. Bu yüzden, geliştirme aşamasında veya beta sürümlerinde LLVM IDE'leri olup olmadığını merak ediyorum.

Evet, Clang'ı GCC uyumlu IDE'lere sahip diğer derleyici olarak kullanabilirim. Ancak Clang ile entegre olan herhangi bir IDE var mı? Clang'ın farklı bir çıktı biçimi vardır, bu nedenle IDE onu ayrıştırmalıdır. Clang, kaynakların IDE çözümlemesini sağlayabilir. Clang, bir IDE'de desteklenmesi gereken bir analiz seçeneğine sahiptir. Bir göz atın, ör. Http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html

Ve Clang'ın en çok aranan özelliği - akıllı otomatik tamamlamadır, bu nedenle IDE yalnızca sözdizimi açısından doğru varyantları önerebilir, örneğin bu yapı, sınıfın yalnızca alanlarını listeleyebilir.

Sonuçlar: (yanıtlardan birleştirildi):


3
Merak ediyorum, gelecekte Emacs Clang için destek kazanıyor mu? Btw burada llvm.org/svn/llvm-project/cfe/trunk/utils/… bir emacs küçük modu var ama ben kendim test etmedim .
Ustun

Code :: Blocks, Clang ile çalışır.
James Harper

Yanıtlar:


59

LLVM, Eclipse CDT'de eklenti ( llvm4eclipsecdt ) aracılığıyla desteklenir . Bildiğim kadarıyla LLVM'yi destekleyen Windows destekli tek IDE . Eklentinin ana yazarıyım, böylece onunla ilgili her türlü soruyu sorabilirsiniz.

Eklenti, Clang ve llvm-gcc derlemesi için temel işlevselliği sunar ve Linux ve Windows'u (w / Cygwin & MiNGW) destekler. Assembler, archiver, linker ve statik derleyici (llc) gibi LLVM araçları yapılandırılır ve UI aracılığıyla özelleştirilebilir. Eklenti, kolay yapılandırma ve tek bir eylemle oluşturma gibi IDE'nin sunduğu tüm avantajları sunar.

Tek dezavantajı, LLVM'nin sunduğu Clang analizi ve akıllı otomatik tamamlama gibi bazı gelişmiş özelliklerden yoksun olduğu için henüz hazır olmamasıdır. Eklenti de iyi test edilmemiştir ve mükemmel çalışmayabilir, bu nedenle umarım Google kod geliştirme sitesinden (aşağıda listelenmiştir) bulunan posta listesi aracılığıyla kullanıcı geri bildirimi alabilirim. Keşke onu daha da geliştirmek için zamanım olsaydı. Onu sadece boş zamanımda geliştiriyorum ki bu çok sınırlı. Tüm geliştiricilerin projeye katılmasını ve katkıda bulunmasını memnuniyetle karşılıyorum.

Geliştirme sitesi:
http://code.google.com/p/llvm4eclipsecdt/
https://github.com/TuononenP/llvm4eclipsecdt

Eclipse pazarı (% 100 ücretsiz ve açık kaynak):
http://marketplace.eclipse.org/content/llvm-toolchain-eclipse-cdt

GÜNCELLEME: Eklenti kullanımdan kaldırıldı. Bunun yerine, resmi Eclipse güncelleme sitesini (ör. Http://download.eclipse.org/releases/mars) kullanarak Programlama Dilleri altında "C / C ++ LLVM-Ailesi Derleyici Oluşturma Desteği" ni kurun.


Selam. Seni burda gördüğüme memnun oldum! "MinGW ikili dosyaları LLVM ve ön uçlar için sağlanır" diyorsunuz - LLVM'nin mingw ikili dosyalarına (burada veya google-kod sitesinde) bir bağlantı ekleyebilir misiniz?
osgx

1
Ayrıca, blogunuzdaki tez hakkında. clang, ada veya fortran için değildir: "Java, Fortran ve Ada dahil diğer diller için LLVM,
GCC'ye

2
LLVM 2.9 için mingw ikili dosyalarını buradan edinebilirsiniz: llvm.org/releases/download.html#2.9
Petri Tuononen

1
İyi not: LLVM-GCC'nin diğer diller için olduğu konusunda haklısınız. Belirli bir ön uç belirtilmeden "LLVM derlendiğini" yazmalıydım, ancak Fortran ve Ada'yı soyuttan çıkaracağım.
Petri Tuononen

LLVM derleyicisini Microsoft VS ile de entegre edebilirsiniz. Llvm.org/docs/GettingStartedVS.html bağlantısı burada . Bu yardımcı olur umarım.
Krishna Oza

21

LLVM katkıyı Dan Gohman son zamanlarda Clang kod tamamlama eklendi vim .

http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/vimrc , LLVM'nin kendisinin geliştirilmesinde kullanılmak üzere tasarlanmıştır ve LLVM kodlama stiline yardımcı olur, ancak kod tamamlama kısmı çıkarılacak kadar kolay olmalıdır .

Evet, evet, vim bir IDE değildir, ancak hakkında bilgi sahibi olmak yararlı olabilir.

[düzenle] https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el , emac'ler için benzer bir seçenek sunar .


11

Qt Creator , Clang ile de çalışır ...


Teşekkürler, soruya eklendi. Hangi QTcreator sürümünden clang desteği var diyebilir misiniz?
osgx

1
2.4.1 bunu yapar .. linux'ta, clang araç zincirini manuel olarak eklemeniz gerekmez .. işte pencere kullanıyorsanız araç zincirini nasıl ekleyeceğinizle ilgili bilgiler: doc.qt.nokia.com/qtcreator-2.4/ creator-tool-chains.html
Kokizzu

ancak yalnızca otomatik tamamlama ve ayrıştırma için kullanıyor
James Harper


5

Pencereler için bir tane yok. Ancak akıllı otomatik tamamlama istiyorsanız, netbeans C ++ için en iyi kod tamamlamalarından birine sahiptir. Makroları, genel kapsayıcıları ve akıllı işaretçileri ayrıştırır. Ayrıca, oluşturuculara, alıcılara ve ayarlayıcılara yeniden düzenleme, kod ekleme sağlar. Gerçekten iyi çalışıyor. Ancak, yine de C ++ için ayrı bir ayrıştırıcı kullandığından, derleyicinin yaptığı kadar çok hata yakalayamaz.

Java için Netbeans derleyiciye entegre edilmiştir, böylece siz yazarken hatalar ve uyarılar verir ve ayrıca sözdizimsel olarak doğru kod tamamlama sağlar. Bu nedenle, netbeans, C ++ için aynı tür özellikleri sağlamak için gelecekte büyük olasılıkla clang ile entegre olacaktır.


2
netbeans kaynağı nasıl ayrıştırır? Hangi C / C ++ ön ucunu kullanıyor?
osgx

3
Evet netbeans, kodun tamamlanması için kaynağın kendisini ayrıştırır. Belki gelecekte ayrıştırmak için clang kullanacaklar, ancak bu henüz entegre edilmedi. Netbeans gcc veya clang için farklı derleyiciler seçebilirsiniz. Henüz clang ile denemedim.
Paul Fultz II



4

SublimeText 2 ekleyebilir miyim? Zaten clang tabanlı akıllı kod tamamlamayı destekleyen bir SublimeClang eklentisine sahiptir .


Eklenti hakkında: "C / C ++ / ObjC / ObjC ++ için otomatik tamamlama önerileri sağlar. Ayrıca isteğe bağlı olarak kodu yazılırken ayrıştırır ve hataları ve uyarıları gösterir."
osgx

DURDURULDU
Johan Boulé

1
Bunun yerine Sublime 3 için EasyClangComplete .
güneşli ay


3

Clang'ın (en azından olması gereken) bir sürücüsü vardır, bu nedenle esasen derleyicisi olarak gcc'yi kullanabilen herhangi bir IDE, derleyicisi olarak da clang kullanabilmelidir (yine de kişisel olarak test etmedim, bu yüzden ne kadar iyi çalıştığına gerçekten kefil olamam).


2
Ancak, kod analizi ve sekme tamamlama gibi standart araç setine ek olan hiçbir özelliği kullanamazsınız.
Ördek mölemeye

3

Hayır.

Şu anda yalnızca xcode minimum clang desteğine sahiptir. Pencerelerde clang statik analizini kullanmak istiyorsanız, bunu CLI aracılığıyla yapmanız gerekir.


6
Cevap / sorular Bu tür bir zaman aşımı olmalıdır .. (meta konu)
Hernan Eche

Hernán Eche, evet, ama kabul edilen cevabı istediğim zaman değiştirebilirim. Durumun değiştiğini ve cevabın "Evet" olup olmadığını bana sorabilirsiniz
osgx

3

Windows için KDevelop başka bir seçenektir. Hala erken aşamalarda olsa da (şu anda MSVC / MinGW derleyicilerini kendi başınıza kullanabilmek için ortamı ayarlamanız gerekir), kullanılabilir ve IDE'nin harika kod anlayışını Windows'a getirir.

https://www.kdevelop.org/features


1

Tam olarak bir IDE değil, IDE ile düz düzenleyici arasında bir tür geçiş, yapılandırmaları elle yazmaktan çekinmeyenler için kullanılabilir bir alternatif: Sublime Text 3 editörü ve EasyClangComplete eklentisinin bir kombinasyonu (ayrıca kodunuzu düzenli tutmak için Clang Formatı ve düzenli). LLVM MSVC uyumlu hale getirmeye yönelik son çabalar sayesinde Windows'ta iyi çalışıyor ( Clang-cl , hata ayıklama için çok önemli olan 2018 itibariyle uyumlu .PDB'ler de üretebiliyor ).

Güncelleme: 2019 tarihi itibariyle EasyClangComplete için çok daha iyi ve geleceğe yönelik alternatif kullanıyor Clangd aracılığıyla LSP eklentisi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.