3

一部のMakefileにはこれが含まれています-

ifneq ($(call try-cc,$(SOURCE_LIBUNWIND),$(FLAGS_UNWIND),libunwind),y)
        msg := $(warning No libunwind found, disabling post unwind support. Please install libunwind-dev[el] >= 0.99);
        NO_LIBUNWIND := 1

このmakeを実行すると、次のようなエラーメッセージが表示されます。

warning No libunwind found, disabling post unwind support. Please install libunwind-dev[el] >= 0.99

この問題をデバッグしたい-この問題の原因となっているの値を知りたい-SOURCE_LIBUNWINDデバッグFLAGS_UNWIND の目的でこれらの値をstdoutに出力するにはどうすればよいですか?

4

3 に答える 3

4

GNUには、make変数の値を出力するために使用できる関数がいくつか用意されています。マニュアルでは、セクション8.12 Functions That Control Makeでそれらについて言及しています。$(error ...)$(warning ...)$(info ...)

さらに、コマンドライン パラメーターを使用する-p--print-data-base、すべてのルールと変数の値を出力するようにすることができます。出力をファイルにリダイレクトして分析すると、値が何であるかをよりよく理解できる場合があります。いくつかの追加情報については、セクション9.7 オプションの概要を参照してください。

于 2013-01-27T04:22:52.840 に答える
3

マクロ X の値を makefile に出力するには、行を追加するだけです。(一種の printf )

$(警告 X は $(X))

于 2013-01-27T04:08:49.163 に答える
1

Reinier と Shraddha は、尋ねられた質問に対して正しい答えを持っていますが、それが正しい質問であるかどうかはわかりません。

私には (投稿されたメイクファイルのスニペットにすぎないことに基づいて)、それらは既に設定されている変数よりも設定できる変数である可能性が高いように思えます。つまり、libunwind の場所を特定するために使用する場所を制御する方法です。

したがって、try-cc 呼び出しが失敗する場合は、libunwind がまったくインストールされていないか、非標準のシステムの場所にインストールされていて、それらの変数を設定して make に通知していないことを意味すると思います。 .

于 2013-02-10T13:41:34.890 に答える