2016-07-07 14 views
2

Ich bin verwirrt. Ich habe eine VM mit Ubuntu 14.04. Ich habe die Verfahren hier verfolgt: http://clang.llvm.org/docs/LibASTMatchersTutorial.html und bin auf dem Schritt, um Ninja zu laufen. Dies baut llvm und klingelt. Nun, meine VM ist keine Last, ich gab ihr 6 GB RAM und 4 CPUs und eine 20GB Swap-Datei. Das größte Problem tritt bei der Verbindungszeit auf - es scheint, eine große Anzahl von ld-Prozessen zu starten, wobei jeder mindestens 3-4 GB oder virtuellen Speicher und irgendwann viel CPU verwendet. Aber die Swap-Datei wuchs auf über 12 GB und die Prozesse sind alle IO-gebunden, aber ich weiß nicht, ob sie etwas Nützliches tun oder sich prügeln. Alles, was ich weiß, ist, dass die Festplatte gehämmert wird und die Jobs für immer laufen. Ich habe gerade die CPU-Anzahl auf die VM auf 1 reduziert, um zu sehen, ob sie mit weniger Parallelität effizienter sein könnte, da ich vermutet habe, dass das Problem sich überschlägt.Gebäude Klang für immer

Ich nehme an, meine Festplatte könnte langsam sein ... Irgendwelche Ideen? Soll ich make statt ninja benutzen? Meine Expertise ist nicht Linux (obwohl ich dort bin :-)) Ich folge dem Tutorial, aber vielleicht ist es nicht die "beste" Methode, die clang/llvm-Programme zu erstellen.

Antwort

3

Ich war dort, es passiert mit der neuesten svn-Version (aber nicht, wenn Sie 3.8 oder ältere Versionen clang bekommen). Was passiert, ist, dass während der Entwicklung eine Menge von Debug-Informationen auch für jede Kompilierungseinheit erzeugt wird, werden die Dateigrößen groß.

Die Lösung besteht darin, alle Debug-Informationen zu deaktivieren, die standardmäßig angehängt wurden. Sie werden wahrscheinlich nicht den Sound debuggen, also brauchen Sie es nicht. SO statt nur diese

cmake -G Ninja ../llvm -DLLVM_BUILD_TESTS=ON 

tun, was Sie tun sollten, ist

cmake -G Ninja ../llvm -DLLVM_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release 

Alle anderen Schritte bleiben gleich. Jetzt habe ich das nicht mit Ninja getestet, aber habe es mit make auf ubuntu verifiziert (diese tutorial, ich habe dasselbe in Schritt 7 geändert). Dies sollte genauso gut sein.

+0

Ich habe es noch nicht ausprobiert, aber das macht sehr viel Sinn. Ich werde als beantwortet markieren. Inzwischen habe ich entdeckt, dass Sie vorgefertigte Bilder des gesamten Codes für Ubuntu 14.04 (und viele andere Plattformen) hier herunterladen können: http://llvm.org/releases/download.html. Dieser Link (http://askubuntu.com/questions/306929/how-to-install-clang-using-precompiled-binaries)hat Details darüber, wie man es bekommt und installiert, obwohl ich es in meinen Home-Ordner statt/usr/lokal. So kann ich einfach löschen oder eine andere Version leicht erhalten. –

+0

Ja, das kannst du ganz machen. Für mich musste ich die neueste Version bekommen und die neueste Version von svn truck bauen, wegen eines Bugfixes, der nach der Veröffentlichung von clang 3.8 gemacht wurde. und es war kritisch für meine Arbeit mit Klängen. –