有没有办法用automake在每个文件的基础上设置标志?
特别是,如果我有一个c ++项目并想用-WAll编译所有文件,除了我要禁用特定警告的文件,我该怎么办?
我尝试过类似的东西:
CXXFLAGS = -WAll ... bin_PROGRAMS = test test_SOURCES = main.cpp utility.cpp utility_o_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value
但它不起作用.
编辑:删除了对automake手册的引用,这实际上是误导(感谢Douglas Leeder).
你不能用automake
...但可以用make
=)添加以下行Makefile.am
:
utility.$(OBJEXT) : CXXFLAGS += -Wno-unused-value
有关详细信息,请参阅GNU Make文档:特定于目标的变量值.
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