PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche für Entwiclung schnellen C++ - Compilier



Lin728
18-04-2003, 13:24
Hi there!

Da ich ja jetzt auch die C++-Bürde mir aufgeladen habe, bin ich auf ein großes Problem gestoßen.

Wenn ich mit dem g++ C++-Programme kompiliere die WxWindows benützen, dauert das kompilieren immer eine Ewigkeit.
Für 10kB Quellcode muss ich dann schonmal 20Sekunden auf meinem P4-1,6Ghz warten.
Ich nehme an, dass die meiste Ziet beim "Durchlaufen" der Header verloren geht...

Kennt jemand eine möglichkeit den G++ für Entwicklungszwecke schneller zu machen, oder kennt wer einen kostenlosen Kompilier der um einiges schneller ist als der g++?

Ich glaube es würde "precompilierte Header" helfen, wie das auch Kylix3 kann, nur ist halt der compilier nicht standardkonform.

Also kennt wer einen (für freie Zwecke) kostenlosen Compilier, der viel schneller ist als der G++? Speziell wenn mit vielen header gearbeitet wird?

Danke schonmal,

Boron
18-04-2003, 14:00
Genau, das ist das Problem der Compiler. Schneller Compiler <--> Schneller Code.

Was nützt dir ein schneller Compiler, wenn das Programm hinterher saulahm ist.
Vielleicht wäre es eine Idee seltener zu übersetzen :rolleyes:. Also nicht alle paar Codezeilen den Compiler anschmeißen, sondern alle paar hundert Zeilen.
Bei Fehler wird ja eh immer gemeckert.

Lin728
18-04-2003, 14:06
Hmm, danke für den Tipp Boron. Aber hast du schon einmal versucht, wenn du eine neue API programmiertst und das in einer Sprache mit der du nicht wirklich befreundet bist, alle paar hundert Zeilen den Compilier anzuschmeißen?!

Außerdem möchte ich das fertige Programm ja sowieso mit dem G++ übersetzten, ich brauche nur zum Ausprobieren einen Compilier der in möglichst kurzer Zeit (~5sek) ein ausführbares, debugbares irgendwas hinten rauswirft.

Mfg

f0rtex
18-04-2003, 16:18
Hi

Benutze make. Damit verkürzt sich die Compilationszeit, da es nur die notwendigen Files
neu übersetzt.



The make utility automatically determines which pieces of a large program need to be recompiled, and issues commands to recompile them.


greets
f0rtex

Lin728
18-04-2003, 16:59
danke für eure Tipps!

Hat wer erfahrung mit den Intel-Compiliern? Können die das?

Mfg

DanDanger
18-04-2003, 17:30
Hi,

Wenn es Dir nichts ausmacht, unter Windows zu Programmieren, dann
könntest Du mal den Borland C++ Compiler ausprobieren.
Den gibt's in der Version 5.02 als "Free Command Line Tools" Kostenlos von der Borland Homepage ( http//www.borland.com , ca 12 MB ), musst dich halt nur vorher anmelden (so'n Spam-Newsletter von Borland halt).

Manchmal ist das Teil auch in bei PC-Magazinen (z.B. CHIP, PC-Welt, etc.) mit dabei.

Der kommt AFAIK mit Pre-Compilierten Dateien zurecht, ich weiss nur nicht, wie ANSI-Konform sich der Compiler gibt.

Gruss
DanDanger

tkortkamp
18-04-2003, 17:43
Hi!

Original geschrieben von ceisserer

Ich suche nur einen (wenn möglich) Komandozeilenkompilier der mit vorkompilierten Headern zurechtkommt. Nicht mehr aber auch nicht weniger.
gcc 3.4 wird mit vorkompilierten Headern zurecht kommen:
http://gcc.gnu.org/gcc-3.4/changes.html
Mit einem CVS-Snapshot sollte das also schon gehen (zumal es Apple, die ja den gcc 3.1 benutzen, auch schon in ihren Compiler eingebaut haben).

Hierzu auch: http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html

c ya,
Tobias

Lin728
18-04-2003, 18:40
Naja, was solls dann muss ich halt noch ein wenig warten...

Die leute von wxWindows (konnte nicht widerstehen dort auch zu fragen), haben mir auch ein kleines Tool genannt, mit dem es schneller gehen sollte, bin gerade beim Kompilieren.
http://ccache.samba.org/

Naja, danke für die Tipps, ich freue mich schon auf GCC3.4!

peschmae
18-04-2003, 20:21
ja, aber das teil bringt erst etwas (genau wie das Vorbild compilercache), wenn du mehrere Quelltextdateien kompilierst und make irgendwas übersieht oder du die Datei mit denselben flags schon mal kompiliert hattest

das Teil schreibt einfach alle Sachen, über die der Präprozessor gewerkelt hat zusammen mit den kompilaten in einen Cache und erwischt damit einiges, was make durch die Büsche geht...

ging mit Compilercache ganz gut, aber mein HD-Platz ist recht begrenzt und gebracht hats imho nicht allzuviel

da würdest du wohl allemal besser den gcc-cvs (oder auch einen Snapshot) ausprobieren

MfG Peschmä

Lin728
18-04-2003, 23:01
Ja, du hast recht!

Ich habe das Ding ausprobiert und es at so gut wie gar nix gebracht.....

anda_skoa
19-04-2003, 11:39
ccache eigent sich für sowas großartig.

Bei uns in der Firma fällt der Fullbuild damit von >70 Minuten auf ca 15 Minuten.

Wenn du mehr als einen Rechner hast, kannst du zusätzlich noch distcc einsetzen: http://distcc.samba.org/

Ciao,
_

bischi
19-04-2003, 16:24
Oder unter Windows halt den VisualC++-Compiler. Dieser ist sehr schnell und in der Autorenversion sogar gratis (Nachteil: halt von M$
:( ). Damit kannst du, solange du nichts veröffentlichen willst, ganz gut arbeiten.

MfG Bischi

peschmae
19-04-2003, 18:51
Original geschrieben von ceisserer

Ich glaube es würde "precompilierte Header" helfen, wie das auch Kylix3 kann, nur ist halt der compilier nicht standardkonform.


wenn schon der von Borland nicht Standardkonform ist, was wird dann wohl der von M$ sein???

Ausserdem den VisualC++-Compiler gibts als solchen so net. Visual C++ ist die M$ - IDE und der Compiler (der wohl von der Optimierung her einer der Miesesten überhaupt ist) heisst irgendwie anders.

Aber ich glaube ein Linuxer zieht das nicht ernsthaft in betracht.

MfG Peschmä

P.S. ich glaube kaum dass die Intel - Compiler irgendwie schneller sind (im kompilieren natürlich, sonst afaik schon noch ein bisschen), hab da mal was gelesen, C't der iX oder so, weiss nur nicht mehr genau wo

peschmae
28-04-2003, 15:43
gemäss c't (6/03 oder so) compiliert der GCC 2.9.5 ungefähr doppelt so schnell wie ein GCC der 3er Serie (3.2 glaubich)

hast du den 2.9.5er schon versucht?

MfG Peschmä

Lin728
28-04-2003, 17:16
Thx für eure Hilfe!

peschmae
28-04-2003, 18:18
Kannst du bestätigen, dass 2.95 schneller ist ?
Was hältst du jetzt von WxWindows respekitve WxGtk?
Wirst du dich weiter damit befassen, oder bist du immer noch auf Toolkit-Suche?


MfG Peschmä

Lin728
28-04-2003, 18:51
Grüssi!

Wie gesagt den 2.95 hab ich ehrlich nicht probiert, hab mich mit dem 3.2er "abgequält ;-)

Lin728
28-04-2003, 19:00
Ich möchte eigene Widgets unter Java/SWING schreiben und finde nigends ordentliche Dokus, da die Stickworte so oft vorkommen.

peschmae
28-04-2003, 19:41
also zu Swing kenne ich nichts...
Habe zwar Core Java II Advanced Zeugs, aber mehr als Referenz. Da ist auch nicht wirklich was drin dazu

Allerdings hatte ich gemeint, WxWindows hätte damals, als ich es probiert hatte, einen (grässlichen) GUI - Builder dabei gehabt, oder irre ich mich? (Vielleicht verwechsle ich das auch mit FLUID von FLTK ..., ist schon lange her ;-))

MfG Peschmä

peschmae
28-04-2003, 19:58
nochwas: SWT + GCJ läuft jetzt recht gut, auch unter Windows mit dem GCJ von Mohan
abgesehen von Problemen beim Zugriff auf andere Festplattenpartitionen als hda1, aber das soll gefixt werden...

allerdings gebe ich dir Recht, das Teil ist nicht Programmiererfreundlich. Schon nur dass bei KeyEvents das character - Feld bei CTRL+A nicht mehr A enthält sondern sonstwas, als ob der CTRL nicht schon über modifierKey angezeigt würde... (:mad: :mad: :mad: )

MfG Peschmä

anda_skoa
28-04-2003, 20:00
Original geschrieben von ceisserer
Grüssi!

Wie gesagt den 2.95 hab ich ehrlich nicht probiert, hab mich mit dem 3.2er "abgequält ;-)


Ist auch viel standardkonformer als der 2.95er



Es gibt aber auch sachen die mich eher abstießen, wie z.B. Eventtabellen in enums drinnen und solche Sachen.


Das haben die halt noch von MFC. Das war praktisch das Vorbild, API mäßig.
Sieht man auch in den Methodennamen, etc.

Aber ich hab mal wo gelesen, dass man auch mit direkten Connects arbeiten kann, also bischen so wie bei Qt's Signal/Slots.

Leider benutzen die meisten Tutorials die Methoden mit den Event Macro Tables :(



Ein Gui-Buider wäre aber schon schön.....


Gibt es, glaub ich, sogar mehrere.

Ciao,
_

anda_skoa
28-04-2003, 20:02
Original geschrieben von ceisserer

Ich möchte eigene Widgets unter Java/SWING schreiben und finde nigends ordentliche Dokus, da die Stickworte so oft vorkommen. Nicht mal bei sun hab ich was oderdentliches gefunden.....


So rein gefühlsmäßig:
- von JComponent ableiten
- Methoden überschreiben
- Widgetspezifische API hinzufügen.

Ciao,
_

nobody0
29-04-2003, 11:51
Wie schnell der Compiler ist hängt auch von der Hardware ab.
Mit 2 CPUs (ist noch relativ billig) oder 4 kann man verschiedene Sachen gleichzeitig compilieren und so die Zeit nahezu Halbieren bzw. Vierteln.
Beim Kernel funktioniert das ganz gut.

peschmae
30-04-2003, 13:18
naja, nur zum so kleine progs zu kompilieren kaufst du dir das wohl nicht :D

dann eher mal GNU cons oder so versuchen...

MfG Peschmä

Lin728
30-04-2003, 15:19
Wenn wir schon beim Thema sind: Die ersten Opterons kann man sich schon kaufen, leider gibts noch keine Boards ;-(

nobody0
30-04-2003, 15:54
In Japan gibt´s laut www.planetquake.de schon die ersten boards, aber da die zwischen 500 u. 800 EUR kosten, warte ich ein Jahr, auch weil die ersten Boards nie ganz ausgereift sind und mich nur dual-Boards interessieren.