1

在 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 为红色

4

1 回答 1

3

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

不要更改AM_*FLAGS配置脚本,这不是它们应该被使用的方式。

请参阅常见问题解答,它有一个您正在尝试做的示例;您应该AC_SUBST输入一个新变量,例如WARNINGCFLAGS,并拥有 Makefile.am 之类的:

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

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

于 2013-10-04T16:37:40.373 回答