使用automake设置每个文件标志

Pao*_*sco 7 linux automake gcc

有没有办法用automake在每个文件的基础上设置标志?
特别是,如果我有一个c ++项目并想用-WAll编译所有文件,除了我要禁用特定警告的文件,我该怎么办?

我尝试过类似的东西:

CXXFLAGS = -WAll ...
bin_PROGRAMS = test
test_SOURCES = main.cpp utility.cpp
utility_o_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

编辑:删除了对automake手册的引用,这实际上是误导(感谢Douglas Leeder).

And*_*sev 15

你不能用automake...但可以make=)添加以下行Makefile.am:

utility.$(OBJEXT) : CXXFLAGS += -Wno-unused-value
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅GNU Make文档:特定目标的变量值.


adl*_*adl 5

Automake仅支持每个目标标志,而您需要每个对象标志.一种方法是创建一个包含您的对象的小型库:

CXXFLAGS = -Wall ...
bin_PROGRAMS = test
test_SOURCES = main.cpp
test_LDADD = libutility.a
noinst_LIBRARIES = libutility.a
libutility_a_SOURCES = utility.cpp
libutility_a_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value
Run Code Online (Sandbox Code Playgroud)