C++ Builder Seattle mit Clang (32bit): Andere Erfahrungen mit Make/Build?



  • Ich wollte einmal nachfragen ob jemand mit dem C++ Builder Seattle (Subscription Update 1, Clang unter einem 32bit-Projekt) das gleiche Problem hat wie ich, oder ob es am VCL-Projekt liegt: Ein Make macht bei mir einen kompletten Buildlauf (Da die Compilierung zudem wesentlich langsamer als unter dem BCB32 ist, stellt dies für uns ein KO-Kriterium für den Clang dar).



  • Hallo,
    ja daß ist bei mir meist auch so.
    Du kannst aber für Clang paralleles Compilieren einstellen, das verkürzt bei mehreren CPU Kernen die Compilierzeit teilweise enorm. Und das geht so:
    - Die Projektoptionen aufrufen
    - bei "C++ Compiler" "Stapel- Compilierung aktivieren."
    - Dann bei "Projekteigenschaften" "C++ Compiler in separatem Prozess ausführen" aktivieren.
    - Gleich darunter ist eine ComboBox ("Anzahl der Unterprozesse"), wo man die maximale Kernanzahl festlegen kann (mehr als die im System verfügbaren Kerne werden dort nicht angeboten).

    Ich habe z.B. ein Projekt, da dauert Erzeugen ohen Stapelkompilierung über 2 min, mit Stapelcompilierung und alle 8 Kerne dauert es dann nur 30 Sekunden.



  • Ich weiß nicht warum, aber nun scheint es plötzlich auch mit dem Make zu funktionieren. Bei uns macht das noch wesentlich mehr aus. Ein Projekt das im bcc32 mit TwineCompile (auch paralelles Compilieren) etwa 20-30sek dauert, braucht mit aktiven paralellen Compilieren unter dem Clang schon etwa das 8-10fache (und wenn dann noch das Make zum Build werden würde, wäre das ein KO-Kriterium).

    Unter Hauptprojekt ist noch nicht clang-Compatibel gemacht, dort braucht aber der bcc32+TwineCompile etwa 250sek. Wenn die Verlangsamung beim clang ähnlich ist wie bei der lib - gute Nacht (wenn das Make nicht funktioniert)...



  • Verwendest du passende PCHs ?



  • Ich werde das zwar noch einmal überprüfen sobald ich an der Arbeit bin, war mir aber eigentlich sicher das ich die pch richtig aufgebaut und eingebunden habe.



  • asc schrieb:

    Ein Make macht bei mir einen kompletten Buildlauf

    Gerade in dem "What's New"-Dokument zu RAD Studio 10.1 gefunden:

    Other C++ Compiler Changes

    Now, the BCC32C compiler provides dependency checking. The Make command compiles only those files that have changed since the last build, as well as files whose dependencies have changed.

    Das erklärt vermutlich deine Beobachtung.


Log in to reply