autotools:如何在config.ac中包含我自己的m4宏



在我的项目中,我有一个文件夹m4。在这个文件夹中,我有ax_cxx_version.m4文件,其中包含ax_CHECK_CXXFLAGS宏。

然后我将m4文件夹包含在autoconf.ac:中

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,那么一切都很好。

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

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

您可以开始调用autoreconf而不是autoconf来重新生成文件,这样就可以了。或者,如果你不想依赖automake,你可以在m4_include中使用一些其他技巧。

关于此事的相关文件(由本人撰写)可在Autotools Mythbuster上查阅。

相关内容

  • 没有找到相关文章

最新更新