wxWidgets makefile



  • Ich bin mir nicht sicher obs das richtige unterforum ist, aber da es ja mehr um makefiles an sich geht und nicht um c++,wx- spezifische Dinge hoffe ich, dass es nicht allzu verkerht ist. Also :
    mein problem ist ,dass ich meine wxWidgets Anwendungen eigentlich wie folgt compiliere :

    g++ file.cpp `wx-config --libs --cxxflags´ -o app
    bzw es aufteile in :
    g++ file.cpp ´wx-config --cxxflags´ -c
    g++ file.o ´wx-config --libs´ -o app -lblubb

    in meinem makefile sieht das dann skizziert so aus :
    WXCFLAG=´wx-config --cxxflags´
    WXLIB=´wx-config --libs´

    nun kommt das Problem die backticks werden ja anders behandelt , quasi werden sie von der shell als zeichen für einen "befehl" interpretiert. Das komische ist, ich dachte es wir direkt so an die shell weitergegeben, und in der commandline funktioniert sowohl das Kompilieren als auch das Linken. Das Prob scheint also die "umsetzung" der backticks zu sein, nun würde ich gern wissen ob man sie "maskieren" kann oder ob ich was bestimmtes beachten muss, wenn ich welche in makefiles benutzte, denn leider kenn ich mich nicht so wirklich gut damit aus.

    [die fehler sind recht verwirrend. die ganze kommandozeile ist gemischt zB kam nen
    "[
    g++ -file.cpp file2-cpp -c -o
    bei raus es fehlten somit einige flags und auch das -o war nicht korrekt sowie
    die tatsache das .o und .cpp gemischt warum und die ´´ befehle fehlten ganz]
    "
    schon mal bei raus :

    Danke im voraus



  • Backticks: ``
    Nicht: ´´

    Ansonsten musst du nichts beachten, da make die Backticks einfach an die Shell weiter reicht.



  • tut mir leid, ich habe den Beitrag gestern wohl zu unaufmerksam geschrieben, denn ich habe im makefile doch die richigen `` benutzt.
    damit es nicht noch einmal passiert hier der relevante teil des makefiles

    CFLAGS= -Wall -ansi -pedantic -c
    
    WXOBJECTS=financer_base.o db_communicator.o transaction_dlg.o financer.o
    WXCFLAGS= `wx-config --cxxflags` -Wall -c 
    WXLIBS=-lboost_date_time -lmysqlpp `wx-config --libs`
    
    financer: $(WXOBJECTS)
    	$(CC) $(WXOBJECTS) $(WXLIBS) -o$@
    
    #dependencies
    
    financer_base.o : financer_base.cpp
    	$(CC) $(CFLAGS) $*.cpp
    db_communicator.o : db_communicator.cpp
    	$(CC) $(CFLAGS) $*.cpp
    transaction_dgl.o :transaction_dlg.cpp
    	$(CC) $*.cpp $(WXCFLAGS) 
    financer.o :financer.cpp
    	$(CC)  $*.cpp $(WXCFLAGS)
    

    wie gesagt, bei den dateien die mit den WXCFLAGS compiliert werden kommt es
    dann zu folgender "merkwürdigen" Zeile:

    g++/4leerzeichen/ -c -o transaction_dlg.o transaction_dlg.cpp



  • Es muss irgend ein syntayerror in deinem Makefile sein. Kann aber nichts erkennen.
    make führt scheinbar irgend eine default-regel aus.
    Denn auch wenn ich dein Makefile lösche und "make transaction_dlg.o" ausführe bekomme ich den gleichen output wie du.
    Dass deine Regel nicht ausgeführt wird kannst du auch daran erkennen dass -Wall im befehl fehlt.
    Habe auch daran gedacht dass es vielleicht daran liegt dass wx-config nicht gefunden wird ( ist bei mir nicht installiert ) und WXCFLAGS mit CFLAGS getauscht, auch die CFLAGS tauchen nicht im befehl auf.
    Sorry keine Ahnung woran es liegt.
    Kurt



  • dennoch danke. ich bin im Moment echt ratlos denn ich habe mal die
    flags und libs mit copy and paste in der konsole ausgeführt und folgende Zeilen
    laufen ohne warnungen und fehler :

    g++ financer.cpp `wx-config --cxxflags` -Wall -c
    g++ transaction_dlg.cpp `wx-config --cxxflags` -Wall -c
    g++ db_communicator.cpp -Wall -ansi -pedantic -c
    g++ financer_base.cpp -Wall -ansi -pedantic -c
    
    g++ financer_base.o db_communicator.o transaction_dlg.o financer.o -lboost_date_time -lmysqlpp `wx-config --libs` -o financer
    

    also eigentlich genau das gleiche wie es mein makefile machen sollte. also kann nicht an der wx-config liegen.
    aber danke schon mal für den Hinweis dasses ne default regel oder so sein könnte. hatte nicht bemerkt dass das -Wall auch fehlt. ich such mal weiter



  • Dieser Thread wurde von Moderator/in Marc++us aus dem Forum Rund um die Programmierung in das Forum Andere GUIs - Qt, GTK+, wxWidgets verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten