makefile und debug mode



  • ich habe bei meinem projekt gesehen, daß beim compilieren der gcc automatisch den debug-mode benutzt, obwohl ich in meinem makefile.am nichts von "enable debug" zu stehen habe. wie kann ich das verhindern?
    Gruß Patrick



  • Du solltest vielleicht erwähnen, mit welchem Entwicklungswerkzeug du arbeitest (Anjuta, KDevelop, xwpe, ...).



  • Das macht ja auch nicht das Makefile.am sondern wird erst durch configure Script eingeschalten, es sei denn du hast in deinen in automake CPPFLAGS irgendwo -g stehen. Alle anderen Definitionen sind in m4 scripst festgelegt unter anderem auch welcher in welchem Mode normalerweise default übersetzt wird normalerweise ist das nicht Debug. Sonst solltest du eigentlich nur "configure --disable-debug" ausführen und fertig ist der Lack.

    @Martin G

    warum?

    Joe

    [ Dieser Beitrag wurde am 09.07.2003 um 08:21 Uhr von JoeIntel editiert. ]



  • @JoeIntel
    es wird troztdem mit der -g option compiliert, obwohl ich configure --disable-debug benutzt habe.
    ich habe als ausgangsdateien makefile.am und configure.in und lasse daraus alles automatisch generieren mit: aclocal, autoconf und automake.
    in configure.in erwähne ich keine flags und im makefile.am steht zum thema flags:
    libtest_la_LDFLAGS = @PLUGIN_LDFLAGS@
    INCLUDES = @GTK_CFLAGS@ -I$(top_builddir)/intl
    Gruß Patrick



  • Original erstellt von PaRu:
    @JoeIntel
    es wird troztdem mit der -g option compiliert, obwohl ich configure --disable-debug benutzt habe.
    ich habe als ausgangsdateien makefile.am und configure.in und lasse daraus alles automatisch generieren mit: aclocal, autoconf und automake.
    in configure.in erwähne ich keine flags und im makefile.am steht zum thema flags:
    libtest_la_LDFLAGS = @PLUGIN_LDFLAGS@
    INCLUDES = @GTK_CFLAGS@ -I$(top_builddir)/intl
    Gruß Patrick

    Zuerst mal, was substituiert denn automake bzw configure aus @PLUGIN_LDFLAGS@. Dann solltets du mal schaue wo genau im Makefile das -g drinn steht. Es kann nämlich sein das irgend ein m4 makro das wieder in die Flags einfügt aber dazu musst du erst mal schauen wo es steht. Es gibt ja schliesslich eine Menge m4 Makros die dafür in Frage kommen könnten.

    Zweites du hast das Programm aber auch mal in der Console compiliert bzw. auto... und configure drübergejagt es kann ja sein das deine IDE nicht das macht was sie soll.

    Joe



  • ich compiliere das komplette projekt aus der konsole heraus.
    wegen des makros hab ich mal in aclocal.m4 gesucht, hab aber nichts gefunden. im Makefile ist er auch nicht zu finden, allerdings ist hier ein verweiß auf aclocal.m4 in der eine menge "-g"s stehen. ich hatte eigentlich nicht vor alle "-g"s zu löschen. der fehler muß sich doch auch irgendwie an der wurzel packen lassen. ich benutze eine menge programme wie aclocal, libtoolize und autoheader, so dass alles ganz schön anschwillt und ich nicht mehr so richtig nachvollziehen kann wo etwas her kommt.
    ich selber habe aber kaum ahnung, da es mein erstes selbest produziertes makefile ist.
    Gruß Patrick



  • nun ja die -g aus dem dem aclocal.m4 zu löschen ist ziehmlich nun wirklich nicht die Lösung zumal auch diese Datei generiert ist. Entscheidend ist an welcher Stelle das -g in deinem Makefile steht denn daraus kann man vielleicht ableiten welches m4 Makro das -g hinzufügt. Wobei die -g's in den LDFLAGS nichts zu sagen haben da sie in den CPPFLAGS stehen müssen um wirklich Debugcode zu generieren. Entscheidend ist also wo das -g überall in den CPPFLAGS steht und daraus kann man vielleicht ableiten welches m4 Makro das -g renschreibt und dort kann man dann Anpassungen machen aber nicht im aclocal.m4 sondern entweder den ausgangsmakros oder in acinclude.m4.

    Joe



  • @JoeIntel
    danke erstmal! ich habe es leider nicht gefunden. ich werde mich damit mal in ruhe auseinander setzen.
    Gruß Patrick


Anmelden zum Antworten