2016-05-24 60 views
0

在我的项目中,我有文件夹m4。在这个文件夹中,我有包含AX_CHECK_CXXFLAGS宏的ax_cxx_version.m4文件。autotools:如何在configure.ac中包含我自己的m4宏

在autoconf.ac然后我包括M4文件夹:

AC_CONFIG_MACRO_DIR([m4]) 

和执行autoconf的。

当我运行配置脚本它的失败与错误流:

checking complex usability... yes 
checking complex presence... yes 
checking for complex... yes 
checking size of int64_t... 8 
checking for long long int... yes 
./configure: line 7235: syntax error near unexpected token `-std=c++0x' 
./configure: line 7235: `AX_CHECK_CXXFLAGS(-std=c++0x -pedantic -Wall)' 

如果添加我的宏aclocal.m4然后一切工作得很好。

什么是包含我自己的宏的正确方法?

+0

您是否试图将方括号括起来? 'AX_CHECK_CXXFLAGS([ - std = C++ 0x -pedantic -Wall])' – baf

+0

问题是运行autoconf后,配置脚本中没有包含AX_CHECK_CXXFLAGS函数。所以我怎么称呼AX_CHECK_CXXFLAGS并不重要。 – user1209304

回答

0

问题是AC_CONFIG_MACRO_DIR实际上没有设置包含路径,但它让aclocal生成正确的文件。但是aclocal是automake的一部分,如果你只是执行autoconf它不会被调用。

您可以开始拨打电话autoreconf而不是autoconf来重新生成您的文件,这应该有诀窍。或者,如果您不想依赖automake,则可以使用m4_include的其他一些技巧。

相关(由我撰写)关于此事的文件可在Autotools Mythbuster上找到。

相关问题