makefile (include)



  • Guten Tag,
    ich habe mal eine kurze Frage, bezüglich der Include Pfade innerhalb eines makefiles. Ich habe dieses Problem im Bezug zu gtkmm. Wie müsste diesbezüglich der Include Pfad eingefügt werden? Vielen Dank schonmal an euch 😉 🙂



  • Die Include Ordner haben nicht direkt mit dem Makefile zu tun. Im Prinzip müssen die nur als Parameter beim Aufruf des Compilers mitgegeben werden. Bei gcc unter Linux wäre das z.B. einfach -I/Pfad/zu/den/Headern



  • Tobiking2 schrieb:

    Die Include Ordner haben nicht direkt mit dem Makefile zu tun. Im Prinzip müssen die nur als Parameter beim Aufruf des Compilers mitgegeben werden. Bei gcc unter Linux wäre das z.B. einfach -I/Pfad/zu/den/Headern

    Bei der Erstellung der obj Dateien oder bei der compilierung mit den obj Dateien?



  • Es muss beim Kompilieren der Quellcode Dateien in die Objekt Dateien rein. (Das Zusammensetzen der Objektdateien zur endgültigen Binary nennt sich dann übrigens Linken)



  • Tobiking2 schrieb:

    Es muss beim Kompilieren der Quellcode Dateien in die Objekt Dateien rein. (Das Zusammensetzen der Objektdateien zur endgültigen Binary nennt sich dann übrigens Linken)

    okay, noch eine kurze frage. Sieht das compileiren hier zumindest richtig aus?

    # variablen deklaration, selbstversändlich
    main: wmain.o main.o
    	g++ $(INCDIR_GTK) $(INCDIR_GTKMM) main.o wmain.o -o main.exe -mwindows $(LIBS) $(LIB_GTK) $(LIB_GTKMM)
    
    main.o: main.h main.cpp
    	g++ -c $(INCDIR_GTK) $(INCDIR_GTKMM) main.h main.cpp
    
    wmain.o: wmain.h wmain.cpp
    	g++ -c $(INCDIR_GTK) $(INCDIR_GTKMM) wmain.h wmain.cpp
    

    Vielen Dank 🙂 (nur damit ich weiss, ob die "basis" stimmt.



  • Wie gesagt, die Includes brauchst du im Prinzip nur beim Compilieren. Beim Target main sind sie überflüssig, schaden tun sie aber auch nicht. Das -mwindows kenn ich grad nicht.

    Ansonsten compilierst du die Header mit. Da die Header automatisch vom Compiler in die Quellcodedateien eingesetzt werden, ist das nicht nötig. Im Allgemeinen ist es auch nicht möglich die Header zu compilieren. Der gcc erstellt dabei allerdings vorcompilierte Header, die das Compilieren etwas beschleunigen, falls die Header groß sind und oft benutzt werden. Das kann allerdings auch zu Problemen führen, vor allem wenn man Standardheader includiert.


Anmelden zum Antworten