Linux 使用automake设置每个文件的标志
automake是否有一种按文件设置标志的方法?Linux 使用automake设置每个文件的标志,linux,gcc,automake,Linux,Gcc,Automake,automake是否有一种按文件设置标志的方法? 特别是,如果我有一个C++项目,并且想用-WALL编译所有文件,除了一个文件,我想禁用一个特定的警告,我能做什么? 我试过这样的方法: CXXFLAGS = -WAll ... bin_PROGRAMS = test test_SOURCES = main.cpp utility.cpp utility_o_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value 但它不起作用 编辑:删除了对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本身的选项 这是设置automake命令行选项的一种方式: -W类 --警告=类别 属于该类别的输出警告。类别可以是以下各项之一:
gnu
warnings related to the GNU Coding Standards (see Top).
obsolete
obsolete features or constructions
override
user redefinitions of Automake rules or variables
portability
portability issues (e.g., use of make features that are known to be not portable)
syntax
weird syntax, unused variables, typos
unsupported
unsupported or incomplete features
all
all the warnings
none
turn off all the warnings
error
treat warnings as errors
可以通过在类别名称前加上“否-”来关闭类别。
例如,-Wno语法将隐藏
关于未使用变量的警告
默认情况下输出的类别为“syntax”和“unsupported”。
此外,“gnu”和“可移植性”
在--gnu和--gnits中启用
严格
环境变量“警告”可以包含以逗号分隔的警告列表
要启用的类别。它将被拿走
在命令行之前考虑
开关,这种方式-Wnone也将
忽略由启用的任何警告类别
警告。也使用此变量
通过其他工具,如autoconf;未知的
为此,将忽略类别
原因
第17节中列出的per文件指的是per Makefile,而不是源文件
我不知道每个源文件的任何标志设置,但您可以使用以下设置每个结果二进制文件的选项:
binaryname_CXXFLAGS
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
你不能用
automake
。。。但是可以使用make
=)将以下行添加到Makefile.am
:
utility.$(OBJEXT) : CXXFLAGS += -Wno-unused-value
有关详细信息,请参阅。现在的问题已经很老了,但答案很有趣,谢谢:)