g++ saulahm ??



  • Hi !

    Ich bin grad in Linux ein bissel am rumprogrammieren mit dem g++ Compiler.
    Kann es sein dass der lahm wie Sau ist ? Vergleichbare Progamme im MCVC++ werden dort merklich schneller compiled...
    Mach ich irgendwas falsch ?

    Hier mal meine makefile:

    program: 
            g++ -pedantic -lclanCore -lclanApp -lclanDisplay -lclanJPEG main.cpp player.cpp seperator.cpp ball.cpp scoreboard.cpp
    

    Wäre nett wenn mir einer sagen könnte wie ich den g++ schneller machen kann ^^



  • wozu pedantic?

    -pedantic besonders genaues Prüfen des C++-Programmes

    hmm und frag mal im linux forum 😉

    ps: ..

    [ Dieser Beitrag wurde am 24.12.2002 um 10:33 Uhr von elise editiert. ]



  • Da werden ja jedesmal alle 5 Dateien compiliert ... mach das Makefile mal richtig.

    Das erste Target sollte die Objectfiles nur linken, darunter kommt für jedes .o ein Target mit allen Abhängigkeiten (die .cpp und alle .h):

    program: file1.o file2.o
            g++ -o program -lfoolib -lbar file1.o file2.o
    
    file1.o: file1.cpp file1.h file2.h
            g++ -c file1.cpp
    
    file2.o: file2.cpp file2.h
            g++ -c file2.cpp
    ...
    

    so in etwa ...



  • Danke Bashar !

    elise : Ich mag es wenn der Compiler den Code *richtig* checkt



  • Original erstellt von Headhunter:
    **Danke Bashar !

    elise : Ich mag es wenn der Compiler den Code *richtig* checkt**

    Dann nimm: -Wall -ansi -pedantic



  • OT: Warum macht Descartes eigentlich nur 🕶 - Smilie Postings? 🕶 :p



  • So, jetzt geht der g++ aber wirklich ab !

    Hier meine makefile :

    OBJS=ball.o main.o

    program: $(OBJS)
    g++ -ansi -Wall -pedantic -lclanCore -lclanApp -lclanDisplay -lclanJPEG $(OBJS)

    Dankeschön nochmal an alle 🕶



  • Original erstellt von Headhunter:
    **So, jetzt geht der g++ aber wirklich ab !

    **

    *kringel grins*



  • So isser natürlich hölle schnell, weil er nur linkt und nie compiliert ... oder ist das etwa doch nicht das ganze Makefile?



  • @OT
    > OT: Warum macht Descartes eigentlich nur cool - Smilie Postings?
    Weil ich den Sonnenbrillen-Smilie ganz nett finde.

    @Bashar
    > So isser natürlich hölle schnell, weil er nur linkt und nie compiliert ...
    > oder ist das etwa doch nicht das ganze Makefile?
    Wenn du in einem Makefile keine Regel für das Kompilieren von Quellcode in Object Code vorgibst, dann wird die Default Regel verwendet. Also wird hier sehr wohl kompiliert.

    Ansonsten schlage ich folgenden (ungetesteten) Makefile vor:

    CC=g++
    CFLAGS=-ansi -Wall -pedantic
    LDLIBS=-lclanCore -lclanApp -lclanDisplay -lclanJPEG
    SRCS=ball.cpp main.cpp
    OBJS=$(SRCS:.cpp=.o)
    
    # default Regel etwas anpassen
    # alle *.cpp File nach *.o kompilieren
    %.o:    %.cpp
            $(CC) -c $(CFLAGS) -o $@ $<
    
    all: programm
    
    clean:
            rm program *.o
    
    # und nun die *.o Files zu einem Programm zusammen linken
    program: $(OBJS)
            $(CC) -o $@ $(OBJS) $(LDLIBS)
    


  • Jep, der tut sehr wohl compilen 😉

    Descartes : Ich glaub meine 08/15 simple-makefile is mir lieber :p



  • Hi !

    So kann man sich täuschen...

    Jetzt sind in meinem Programm ein paar Dateien mehr, und für das Linken nimmt sich der g++ doch recht viel Zeit 🙂

    Ich hab deine makefile mal probiert, descartes, leider klappt sie nicht. Ich hab auch versucht sie umzuändern, allerdings auch ohne Erfolg...

    Kannst du sie mir nochmal neuschreiben ? Danke schonmal ^^



  • Original erstellt von Headhunter:
    Ich mag es wenn der Compiler den Code *richtig* checkt :xmas1:

    das ist blödsinn. mit -pedantic stolperst du nämlich über tausende fehler in den (linux-)includes. kannst du also vergessen.



  • Ok, ohne pedantic ist der g++ schon mal ca. 25% schneller 🙂


Anmelden zum Antworten