如何设置自动工具的默认C++;编译标志

如何设置自动工具的默认C++;编译标志,c,autotools,flags,autoconf,automake,C,Autotools,Flags,Autoconf,Automake,我对使用自动工具很陌生,我还在学习 因此,正如我的主题标题中所述,我想知道如何设置编译标志 我知道在这方面已经有了一些进展,但这并没有解决我的问题: 我用过: ... AC_SUBST([AM_CXXFLAGS], [-Wall -Werror]) ... 但不幸的是,当使用/configure时,我得到: ... ./configure: line 3436: -Wall: command not found ... 结果,它生成了makefile,但没有目标 提前感谢您提供的任何帮助请改

我对使用自动工具很陌生,我还在学习

因此,正如我的主题标题中所述,我想知道如何设置编译标志

我知道在这方面已经有了一些进展,但这并没有解决我的问题:

我用过:

...
AC_SUBST([AM_CXXFLAGS], [-Wall -Werror])
...
但不幸的是,当使用
/configure
时,我得到:

...
./configure: line 3436: -Wall: command not found
...
结果,它生成了makefile,但没有目标


提前感谢您提供的任何帮助

请改为在
Makefile.am
中设置它们:

AM_CXXFLAGS = -Wall -Werror
这对我很有用:

配置.ac

...
AC_SUBST([AM_CXXFLAGS], ["-Wall -Werror"])
...
对我也有用,因为

AC_SUBST([FOO], [BAR QUUX])
展开为以下shell代码:

FOO=BAR QUUX
运行QUUX时,FOO环境变量设置为BAR。在您的情况下,这意味着将
AM\u CXXFLAGS
设置为
-Wall
,并执行
-Werror
。我不知道你为什么看到执行了
-Wall
。。。对我来说,错误发生在第2802行:

configure: line 2802: error: -Werror not found
因此,我打开了
configure
脚本,在第2802行找到了
AM_CXXFLAGS=-Wall-Werror
。在configure.ac中将其更改为
['-Wall-Werror']
,为我解决了一些问题


Autotools构建系统具有很强的可移植性,它使交叉编译比某些构建系统更容易(例如,Cmake需要设置了特殊变量的工具链文件)。我不建议将切换生成系统作为解决如此简单问题的方法。

谢谢您的回答,但是绝对没有办法在
configure.ac
文件中设置它吗?事实上,我还没有找到一个项目与autotools功能相匹配,因此我不能同意上面的评论。