2017-03-26 3 views
0

Hier sind zwei separate Fragen.Erstellen von a.out mit Makefile und Deaktivieren von Warnmeldungen

Erstens, ist es möglich, ein Makefile so zu ändern, dass es eine von GDB lesbare Datei erzeugt? Zweitens, in einem Makefile, wie alle Warnmeldungen auf der Bildschirmausgabe zu deaktivieren? Hier

ist der Inhalt der Make-Datei:

ALL: timefield eqloc3d getdat 

timefield: timefield.c common.c common.h getpar.c time_3d.c modresample.c eq.c eq.h 
    cc timefield.c common.c getpar.c time_3d.c modresample.c eq.c ./libgeo.a -lsunmath -lm -g -o timefield 

eqloc3d: deri.c eqloc3d.c getpar.c main.c modresample.c common.h common.c modifyxy.c modifyxyz.c eqloc3d.h eq.c eq.h model.h initeqloc.h initeqloc.c 
    cc deri.c eqloc3d.c getpar.c main.c modresample.c common.c modifyxy.c modifyxyz.c eq.c initeqloc.c ./libgeo.a -lsunmath -lm -xlic_lib=sunperf -g -o eqloc3d 

getdat: eq.c eq.h getdat.c 
    cc -g eq.c getdat.c -o getdat libgeo.a -lm 

Wenn ich die Make-Datei ausführen, erstellt es drei binäre ausführbare Dateien: Timefield, eqloc3d, getdat. Sobald das Programm keine korrekten Ausgaben erzeugt, habe ich kein a.out, so dass ich GDB verwenden kann, um Ausnahmen zu verfolgen.

+0

Sie wollen wissen, wie Warnmeldungen vom Compiler zu unterdrücken, und wie man den Debugger zu ermöglichen. Denk darüber nach. – Beta

Antwort

0

warum brauchen Sie a.out ??

basierend auf Ihrem Makefile, erzeugt Ihr Makefile 3 ausführbare Dateien. und sie werden immer erzeugt .....

erste Frage:

ja. Sie müssen "-g" hinzufügen, um die ausführbare Debug-Gable zu machen. In der makefile-Datei geschrieben Sie alle drei ausführbaren Dateien getdat, Timefield und eqloc3d bereits mit "-g" gebaut.

So kann die ausführbare Datei debuggen. Sie müssen nur wie folgt anrufen.

$ gdb getdat 

oder $ gdb timefield

oder $ gdb eqloc3d

Dann setzen Bruchstellen und rufen run mit entsprechenden Argumenten falls vorhanden.

Zweite Frage:

Verwendung -w alle Warnmeldungen zu verhindern.

ex:

cc -w -g eq.c getdat.c -o getdat libgeo.a -lm 
Verwandte Themen