2017-03-26 15 views
0

ここには2つの別々の質問があります。makefileでa.outを生成し、警告メッセージを無効にする

まず、makefileを修正して、GDBが読むことができるa.outを生成することは可能ですか?次に、メイクファイルで、画面出力のすべての警告メッセージを無効にする方法は? timefield、eqloc3d、getdat:私はメイクファイルを実行する場合

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 

が、それは3つのバイナリ実行ファイルを作成します。ここでは

は、メイクファイルの内容です。プログラムが正しい出力を生成しないと、私はa.outを持っていないので、GDBを使って例外をトレースすることができます。

+0

。それについて考えてみてください。 – Beta

答えて

0

なぜa.outが必要ですか?

メイクファイルに基づいて、メークファイルは3つの実行可能ファイルを生成します。

はい:彼らは.....

最初の質問を生成なっています。実行可能なデバッグゲーブルを作るために "-g"を追加する必要があります。 メイクファイルには、3つの実行ファイルgetdat,timefieldおよびeqloc3dがすべて「-g」でビルドされています。

したがって、実行可能ファイルはデバッグする準備ができています。あなたは以下のように電話する必要があります。

$ gdb getdat 

または $ gdb timefield

または$ gdb eqloc3d

そして、ブレークポイントを設定してあれば、適切な引数を指定してrunを呼び出します。

2番目の質問:

すべての警告メッセージを抑制するために-wを使用しています。

例:

あなたは、コンパイラから警告メッセージを抑制し、そしてどのようにデバッガを有効にする方法を知りたい
cc -w -g eq.c getdat.c -o getdat libgeo.a -lm 
関連する問題