2012-03-08 12 views
14

多くのデフォルトを設定する別のメイクファイルを含むMakefileがあります。私はインクルードされたmakefileを編集することはできません。インクルードされたmakefileに設定されていても、makefileのC++ FLAGSの値を変更したいと思います。具体的には、私は最適化フラグをC++ FLAGSから削除する場合は、debug = 1とします。 MakefileのC++ FLAGSからフラグを削除しますか?

は、私が試した次

Recursive variable `C++FLAGS' references itself (eventually). Stop. 

それは可能なはずです。このような何かをやってのように思える、誰もが秘密を知っている:次のエラーで失敗し

C++FLAGS=$(filter-out -O3,$(C++FLAGS)) 

答えて

20
C++FLAGS:=$(filter-out -O3,$(C++FLAGS)) 

:=割り当てすぐは右辺値を評価し、これがため、動作するはずです。一方、=は遅延拡張のセマンティクスを持っています(つまり、lvalueが使用されるたびにC++FLAGSが展開され、再帰が発生します)。

+0

Argh!私はそれがそれのような単純なものでなければならないことを知っていた。ありがとう。 –

関連する問題