附加到AM_CXXFLAGS不起作用

时间:2013-10-04 15:18:18

标签: autotools

在configure.ac中,我定义了AM_CXXFLAGS

AC_SUBS([AM_CXXFLAGS], "-Wall -Wextra -Werror -std=gnu++11"])
在Makefile.am中

我需要在我的程序中禁用警告

bin_Programs = foo bar

# Works
foo_CXXFLAGS = $(AM_CXXFLAGS) -Wno-error=unused
foo_SOURCES = foo.cc

# Does not work, results in CXXFLAGS being just the -Wno-error=unused
bar_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_srcdir)/include
bar_CXXFLAGS = $(AM_CXXFLAGS) -Wno-error=unused
bar_SOURCES = bar.cc

为什么酒吧不起作用?如何解决?

旁注:vim语法高亮显示将第二个AM_CXXFLAGS标记为红色

1 个答案:

答案 0 :(得分:3)

首先,它应该是bin_PROGRAMS,而不是bin_Programs。它是AC_SUBST,而不是AC_SUBS

请勿从配置脚本更改AM_*FLAGS,这不是应该如何使用它们。

参见FAQ,它有一个你要做的事情的例子;你应该AC_SUBST进入一个新的变量,比如WARNINGCFLAGS,并让Makefile.am像:

AM_CXXFLAGS = $(WARNINGCFLAGS) -Wno-error=unused

并完全删除{foo|bar}_CXXFLAGS,因为在此更改后不需要它们。