makefile変数のPATHにどのように影響しますか?私の例が機能しないのはなぜですか?
質問
makefileの最初に次の行があります:
PATH := $(PATH):/other/dir
このエラーは次のとおりです。再帰変数「PATH」が自身を参照しています
。動作させるには何をしなければなりませんか?
解決
GNU make(および他の多く)には、変数に値を割り当てる2つの主な方法があります。使用する演算子によって異なります。 ドキュメントによると、単一の等号( =
)は値の再帰的な展開を引き起こしますが、コロンと等しい(:=
)は単純な展開を引き起こします。
引用符で囲まれたコードは:=
を使用しているため、 は単純な展開になります。表示されているのは、再帰的な展開に関連するエラーメッセージです。このようなエラーが発生した場合は、この種のエラーが発生します:
PATH = $(PATH):/other/dir
引用していない別の行のメイクファイルが原因でエラーが発生していませんか?カットアンドペーストが正しいこと、および問題の原因となっているのがこの行であることが確実な場合は、編集されていないメイクファイル全体を確認できると便利です。
他のヒント
別の可能性は、シェル関数を使用することです:
PATH = $(shell printenv PATH):/ other / dir
$(PATH)を$ {PATH}に変更してみてください
所属していません StackOverflow