1

CXXFLAGSに「-Wredundant-decls」がありますが、1つのファイルについては削除したいと思います。

私のGNUmakefileで、CXXFLAGSのその部分だけを削除するルールをどのように構成できますか。

私はそのファイルにのみ追加する方法を知っています、私は次のようなことをします:

$O/just_one_file.o: CXXFLAGS += -Wredundant-decls

したがって、理想的には、これを削除するために次のようなことを行います(これは機能しません)。

$O/just_one_file.o: CXXFLAGS -= -Wredundant-decls

ただし、おそらく$マジックを使用して、ある種のsedまたはperlスクリプトを作成して、-Wredundant-declsを削除し、CXXFLAGSを削除された値に設定できます。

$O/just_one_file.o: CXXFLAGS = $(shell strip magic here for $CXXFLAGS)
4

2 に答える 2

2

シェルは必要ありません:

$O/just_one_file.o: CXXFLAGS := $(subst -Wredundant-decls,,$(CXXFLAGS))

また

$O/just_one_file.o: CXXFLAGS := $(filter-out -Wredundant-decls,$(CXXFLAGS))
于 2010-04-28T00:28:37.290 に答える
0

さて、私は自分でそれを理解しました:

$O/just_one_file.o: CXXFLAGS := $(shell echo ${CXXFLAGS} | sed s/-Wredundant-decls//g)
于 2010-04-28T00:30:07.840 に答える