我在哪里放置其他autotool宏?

时间:2012-05-03 12:41:30

标签: autotools

emsr对这个问题的回答:How can I specify that I want C++0x in Makefile.am?是解决我遇到的问题的方法。不,我有一个新的:

我将宏定义放入m4 / check.m4并相应地更改我的configure.ac:

AC_INIT([CppSs], [0.1], [brinkmann@hlrs.de])
m4_include([m4/check.m4])
LT_INIT

AC_CONFIG_SRCDIR([src/main.cc])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([Makefile src/Makefile])
AC_CONFIG_MACRO_DIR([m4])

# Checks for programs.
AC_PROG_CXX
AC_PROG_CC

# ...

# Check for C++0x features
AC_COMPILE_STDCXX_OX
AC_HEADER_STDCXX_11

AC_OUTPUT

现在当我运行autoreconf -v时,我收到了这些消息(尝试了-fiv):

configure.ac:43: warning: AC_COMPILE_STDCXX_11 is m4_require'd but not m4_defun'd 
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... 
../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... 
../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... m4/cppss.
m4:90: AC_HEADER_STDCXX_11 is expanded from...

./ configure yield:

...
./configure: line 16234: AC_COMPILE_STDCXX_OX: command not found
./configure: line 16235: AC_COMPILE_STDCXX_11: command not found
...

我错过了什么?

谢谢,Steffen

1 个答案:

答案 0 :(得分:1)

我自己解决了......它是几个拼写错误(0而不是O等)的混合,以及将宏放入configure.ac的错误。另外,我发现,如果它只是一些宏,那么将它们放在与acinclude.m4相同的目录中的configure.ac文件中更容易,并且摆脱

m4_include([m4/check.m4])

在页面底部的部分libstdc++ manual中有一个错误,其中检查了c ++ 11的功能,因为(至少在gcc中)没有编译器选项{{1} }。它应该是-std=c++11

干杯,斯蒂芬