GCC bei kompilieren beschleuigen

Gast #3017011
Lesenswert?

Hallo,

Ich nutze Codesourcery g++ und finde das kompilieren sehr langsam.

Ich kenne zwar make -j5 (Quadcore) allerdings habe ich keine Möglichkeit 
das irgendwo anzugeben da meine IDE (Winidea von iSystem) eine interne 
make durchführt. Kann nur Schalter füe arm-eabi-gcc.exe angeben.
Gibt es noch andere Möglichkeiten mehrere Kerne beim kompilieren zu 
nutzen?
#3017029
Lesenswert?

Ben _ schrieb:
> Kauf einen schnelleren Computer!

Billiger: Den Compiler schön klassisch über Makefiles benutzen. Das geht 
beim Codesourcery immer, mit jeder IDE, weil man die dann einfach 
weglässt, bzw. nur als Editor/Debugger nutzt. Ausserdem kann man 
Quellfiles so strukturieren, dass nicht bei jeder kleine Änderung stets 
das ganze Projekt neu übersetzt werden muss.
Gast #3017040
Lesenswert?

Der Gedanke dahin war durchaus schon da, allerdings weiß ich im moment 
nicht wie ich das extraieren kann. Eine make.exe exitiert auch nicht.

Früher hatte ich yagarto und externes Makefile, gestört hat mich aber 
das alles immer wieder eingetragen werden muste bei neuen Modulen.

Aber wenn es keine andere Möglichkeit gibt, es ist schon ein großer 
unterschied zwischen -j2 und -j5.
Persönliche Seite #3017047
Lesenswert?

Frederick schrieb:
> Schalter füe arm-eabi-gcc

- -O0 optimiert auf Resourcenverbrauch des Hosts
- -pipe beim Compilieren
- -g0 denn debug-Info wie DWARF-3 vergrößert massiv dir Objekte und
   Symboltabellen, insbesondere geht das Linken schneller
- Preprocessed Headers (PPH) verwenden
- Auf Optimierungen wie LTO verzichten
- Keine Dumps oder temporären Dateien erstellen lassen
- Bei selbsterstelltem GCC darauf achten, daß dieser mit -O2 o.ä.
  erzeugt wurde!
Gast #3017049
Lesenswert?

Eigendlich mache ich "nur" c mit STMf103/105/107. Arbeite aber mit der 
lib zusammen nd das kann schonmal 10Sekunden dauern. Mit -j5 wären es ca 
3 Sekunden (geschätzt).

Wenn man es also nutzen kann will ich es auch, aber abgesehen von diesem 
Schalter hab ich im Netz nichts gefunden.
Gast #3017075
Lesenswert?

Hallo prx

>Ohne Debug-Info ist der Debugger ziemlich

Das ist mir schon klar.
Die Frage war eigentlich "Was bringt DWARF-3 im
Vergleich zu DWARF-1,2 oder anderen, kompakteren  Debuginfo-Formaten"
Sorry war unklar formuliert.
#3019298
Lesenswert?

In der aktuellen Version scheint CodeSourcery Eclipse+CDT zu sein, hier 
auf Seite 5:

http://communities.mentor.com/mgcx/servlet/JiveServlet/previewBody/3033-102-2-5991/Building%20a%20Linux%20Kernel%20Using%20Sourcery%20CodeBench.pdf

steht wie man parallel baut:

a. Select Projects > properties.
   b. Select C/C++ Build.
   c. Select the Behavior tab.
   d. Enable Parallel Builds.
     i. Select the Use Parallel Build option.
     ii. Select Use Parallel Jobs.
     iii. Enter the number of parallel jobs to run

..genauso wie bei Eclipse+CDT eben. Ist das bei dir auch so?
Moderator Persönliche Seite #3019309
Lesenswert?

A. K. schrieb:
> -j10 bringt aber nur was wenn Projekt riesig gross

Konkret: es muss aus mindestens 10 Quelldateien bestehen, denn die
Parallelisierung erfolgt auf der Ebene von "make".  Wenn man nur
eine Quelldatei hat, die compiliert und gelinkt werden muss, wird
"make" auch mit -j5 oder -j10 nur in der Lage sein, diese zuerst
compilieren und danach linken zu lassen.

Zusammen mit -pipe ließe sich beim Compilieren der Assembler auf
einem zweiten Prozessor ausführen.  Allerdings braucht der insgesamt
so wenig CPU-Zeit, dass das auf aktuellen Prozessoren vernachlässigbar
ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren