Ist Clang / LLVM bereit für die Hauptsendezeit? [geschlossen]

9

Clang kann anstelle von gcc verwendet werden? Was war deine Erfahrung damit? Welche Nachteile gibt es noch?

Die Leistung der Kompilierung ist sehr viel besser als die von gcc, aber was die Leistung des bei der Ausführung generierten Codes betrifft?

Gibt es gute Tools als Front-End (IDE) für Linux oder Windows?

EDIT: Ich meine C-Compiler. C ++ ist noch nicht so gut.

Maniero
quelle

Antworten:

9

Update: Jetzt (2013) ist Clang bereit für die Hauptsendezeit und wird von einigen Unternehmen wie Google verwendet. Unter Windows ist es jedoch nicht vollständig verwendbar. Die Arbeit an dieser Plattform ist ein "work in progress". LLVM / Clang ist derzeit der Standard-Compilator unter MacOSX / XCode, aber es sind nicht genau die gleichen Versionen wie die LLVM-Versionen. Achten Sie daher auf die geringfügigen Unterschiede (hauptsächlich Unterschiede bei den Versionsnummern).


Nun, nach der Clang Dev Mailingliste wurde kürzlich die Trunk-Version erfolgreich erstellt:

  • der Linux-Kernel (eine aktuelle Revision)
  • Qt (anscheinend auch mit einem speziellen Build-Prozess)
  • Chrom (eine aktuelle Überarbeitung)

Daher würde ich sagen, dass die kommende Version (2.9) ein guter "Ready for Prime Time" -Compiler sein könnte.

Wenn Ihr Projekt jedoch über eine Planung und ein Budget verfügt, ist es möglicherweise keine gute Idee, einen Compiler auszuprobieren, der noch nicht stark getestet wurde. Wenn Sie experimentieren und der Clang-Entwickler-Community Feedback geben dürfen, dann ist dies eine Win-Win-Situation für alle. Wenn nicht, sollten Sie vielleicht einen ausgereiften und stark genutzten Compiler wie gcc (in den neuesten Versionen) verwenden, um einen "stabilen Boden" zu haben, auf den Sie sich bei der Arbeit an Ihrem Projekt verlassen können.

Klaim
quelle
Nur zur Ergänzung, es ist kein professionelles Projekt ... dennoch ist es fast 20% Arbeitszeitprojekt.
Maniero
Ich hätte versucht, an einem nicht professionellen plattformübergreifenden Projekt zu klirren. Genau das versuche ich gerade.
Klaim
Vielen Dank. Mein Anliegen ist die Zukunft des Projekts. Ich werde als Experiment beginnen, aber ich möchte bald mehr als das tun.
Maniero
Wenn es sich um ein langfristiges Projekt handelt, kann es von CLang profitieren, sobald es stabil, korrekt, optimiert und mit vollem C ++ 0x ausgestattet ist (wenn Sie C ++ verwenden). Weil es das Ziel ist, der schnellere Compiler da draußen zu sein, und anscheinend ist es das bereits. Und es ist wichtig.
Klaim
1
Clang baut auch iOS, Xcode und so ziemlich alles, was Apple ausliefert.
Mike Weller
8

Nun, es ist sicherlich bereit für die Primetime unter Mac OS X, da viele Mac OS X-Apps mit clang kompiliert werden. Aber auch auf anderen Plattformen ist die C-Unterstützung ziemlich solide, und das Team hat mit der C ++ - Unterstützung große Fortschritte gemacht.

Im Allgemeinen kompiliert clang Code schneller als gcc, aber gcc generiert besser optimierten Code. (Es gibt Randfälle, in denen dies nicht zutrifft, aber im Allgemeinen ist dies der aktuelle Status.)

Mipadi
quelle
Ich sehe das gleiche Problem, Clang ist noch zu sehr an MacOS / BSD gebunden.
Maniero
Ich habe CLang unter Windows 7 ausprobiert und es hat richtig funktioniert. Ich habe es auch unter Ubuntu versucht. Ich denke, Ihre Informationen sind nicht auf dem neuesten Stand, aber das ist logisch, da in den letzten Monaten viele plattformübergreifende Korrekturen durchgeführt wurden. Vielleicht wird es nicht mehr so ​​mac-zentriert sein, wenn die nächste Version herauskommt.
Klaim
1
@Klaim: Ich sage nicht über Clang per se , sondern über das gesamte Ökosystem. Ich habe einige Dinge bei Win7-Whiteout-Problemen ausprobiert, aber nur den Compiler auf CLI.
Maniero
Ich habe festgestellt, dass Clang für mein Projekt eine schnellere Binärdatei als GCC erstellt hat. Es lohnt sich zumindest, es auszuprobieren.
Kendall Hopkins
Ist jetzt auch der Standard-Compiler für iOS.
Mamcx
3

Sie sollten sich nicht wirklich auf einen bestimmten Compiler verlassen, es sei denn, Sie müssen es wirklich tun. Sie sollten also in der Lage sein, den Compiler in einem Makefile oder so etwas zu ändern, und alles sollte gut funktionieren.

Hier verwende ich hauptsächlich Clang für meine Spielzeugprojekte, weil es schneller und viel wichtiger ist: Die Fehlermeldungen sind so verdammt klarer. Aber wenn ich gdb verwenden muss, kompiliere ich mit gcc und -ggdb. Clang ist also noch nicht vollständig und kann nicht mein einziger Compiler sein.

(Übrigens: Ich bin auf x86 Gentoo und die Projekte sind in C und C ++)

edit : zur klarstellung läuft clang schneller (in einigen fällen viel schneller). Ausgefallene Optimierungen interessieren mich nicht.


quelle