我使用autotools时很新,我还在学习。
因此,正如我的主题标题中所述,我想知道如何设置编译标志。
我知道已经存在topic,但它并没有解决我的问题:
我用过:
...
AC_SUBST([AM_CXXFLAGS], [-Wall -Werror])
...
但不幸的是,在使用./configure
时,我得到了:
...
./configure: line 3436: -Wall: command not found
...
因此它生成Makefile但没有目标
提前感谢您的任何帮助
答案 0 :(得分:2)
The answer provided by Idav1s也适用于我,因为
AC_SUBST([FOO], [BAR QUUX])
扩展为以下shell代码:
FOO=BAR QUUX
运行QUUX,FOO环境变量设置为BAR。在您的情况下,这意味着AM_CXXFLAGS
设置为-Wall
,并执行-Werror
。为什么你看到-Wall
被执行而不为我所知......对我而言,错误发生在第2802行:
configure: line 2802: error: -Werror not found
所以我打开了configure
脚本,我发现的是第2802行的AM_CXXFLAGS=-Wall -Werror
。在configure.ac中将其更改为['-Wall -Werror']
为我修复了一些内容。
Autotools构建系统非常便于移植,它使交叉编译比某些构建系统更容易(例如,Cmake需要设置特殊变量的工具链文件)。我不建议将构建系统转换为解决这个简单问题的方法。
答案 1 :(得分:1)
这对我有用:
<强> configure.ac 强>
...
AC_SUBST([AM_CXXFLAGS], ["-Wall -Werror"])
...
答案 2 :(得分:0)
将其设置为Makefile.am
而不是:
AM_CXXFLAGS = -Wall -Werror