Clang / LLVM prime time için hazır mı? [kapalı]


9

Clang gcc yerine kullanılabilir mi? Bu konudaki deneyiminiz nedir? Henüz ne dezavantajları var?

Derleme performansı gcc'den çok daha iyi ama yürütülürken oluşturulan kodun performansı hakkında?

Linux veya Windows üzerinde çalıştırmak için ön uç (IDE) olarak iyi araçlar var mı?

EDIT: C derleyicisi demek istiyorum. C ++ henüz o kadar iyi değil.

Yanıtlar:


9

Güncelleme: Şimdi (2013) Clang prime time için hazır ve Google gibi bazı şirketler tarafından kullanılıyor. Ancak Windows üzerinde tamamen kullanılabilir değildir, bu platformda çalışmak "devam eden bir çalışma" dır. LLVM / Clang şu anda MacOSX / XCode'daki varsayılan karşılaştırıcıdır, ancak LLVM olanlarla tam olarak aynı sürümler değildir, bu nedenle küçük farklılıklara dikkat edin (çoğunlukla sürüm numaralarının farkı).


Eh aşağıdaki clang dev posta listesi , son zamanlarda gövde versiyonu başarıyla inşa edilmiş:

  • linux çekirdeği (son bir düzeltme)
  • Qt (görünüşe göre özel yapım süreci ile de)
  • Chromium (son bir düzeltme)

Yani, gelecek sürümün (2.9) iyi bir "prime time hazır" derleyicisi olabileceğini söyleyebilirim.

Ancak, projenizde bir planlama ve bütçe varsa, belki de henüz yoğun bir şekilde test edilmemiş bir derleyiciyi denemek iyi bir fikir olmayabilir. Clang geliştiricileri topluluğunu deneme ve geri bildirim sağlama izniniz varsa, bunun için herkes için kazan-kazan. Değilse, belki de projeniz üzerinde çalışırken güvenebileceğiniz bir "istikrarlı zemin" elde etmek için gcc (son sürümlerinde) gibi olgun ve çok kullanılan bir derleyici kullanmalısınız.


Sadece tamamlama için, bu profesyonel bir proje değil ... yine de, neredeyse% 20 çalışma zamanı projesi.
Maniero

Profesyonel olmayan bir çapraz platform projesinde clang'ı denerdim. Aslında şu anda deniyorum.
Klaim

Teşekkürler. Endişem projenin geleceğiyle ilgili. Deneme olarak başlayacağım ama yakında bundan daha fazlasını yapmak istiyorum.
Maniero

Uzun vadeli bir proje ise, kararlı, doğru, optimize edilmiş ve tam C ++ 0x özellikli (c ++ kullanıyorsanız) CLang'dan yararlanabilir. Hedefi orada daha hızlı derleyici olmak ve görünüşe göre zaten öyle. Ve bu önemli.
Klaim

1
Clang ayrıca iOS, Xcode ve Apple'ın gönderdiği hemen hemen her şeyi inşa ediyor.
Mike Weller

8

Pek çok Mac OS X uygulaması clang kullanılarak derlendiği için Mac OS X'te kesinlikle ilk kullanıma hazırdır. Ancak diğer platformlarda bile C desteği oldukça sağlam ve ekip C ++ desteği ile büyük adımlar attı.

Genel olarak konuşursak, clang kodu gcc'den daha hızlı derler , ancak gcc daha iyi optimize edilmiş kod üretir. (Bunun doğru olmadığı uç durumlar vardır, ancak genel olarak mevcut durum budur.)


Aynı sorunu görüyorum, Clang henüz MacOS / BSD'ye çok bağlı.
Maniero

Windows 7'de CLang'ı denedim ve düzgün çalıştı. Ben de Ubuntu üzerinde denedim. Bilgilerinizin güncel olmadığını düşünüyorum, ancak geçen aylarda platformlar arası düzeltmeler için çok çaba harcanması mantıklı. Bu yüzden belki bir sonraki sürüm çıktığında bu kadar merkez merkezli olmayacaktır.
Klaim

1
@Klaim: Clang per se hakkında değil, tüm ekosistem hakkında söylemiyorum . Win7 whiteout problemlerinde bazı şeyler denedim, sadece CL'de derleyici.
Maniero

Clang'ın projem için GCC'den daha hızlı bir ikili dosya oluşturduğunu gördüm. En azından denemeye değer.
Kendall Hopkins

Ayrıca, şimdi iOS için varsayılan derleyici.
mamcx

3

Gerçekten gerekmedikçe belirli bir derleyiciye gerçekten güvenmemelisiniz. Bu yüzden derleyiciyi bir Makefile'de veya başka bir şeyde değiştirebilmelisiniz ve her şey iyi çalışmalıdır.

Burada oyuncak projelerim için ağırlıklı olarak clang kullanıyorum, çünkü daha hızlı ve çok daha önemli: hata mesajları çok açık. Ama gdb kullanmam gerektiğinde, gcc ve -ggdb ile derlerim. Yani clang henüz tam özellikli değil ve benim tek derleyicim olamazdı.

(BTW: x86 gentoo'dayım ve projeler C ve C ++ 'da)

edit : netleştirmek için, clang daha hızlı çalışır (bazı durumlarda, çok daha hızlı). Süslü optimizasyonlarla ilgilenmiyorum.

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.