在我的项目中,我有文件夹m4。在这个文件夹中,我有ax_cxx_version.m4文件,其中包含AX_CHECK_CXXFLAGS宏。
然后我在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 :(得分:0)
问题是AC_CONFIG_MACRO_DIR
实际上并没有设置包含路径,而是让aclocal
生成正确的文件。但是aclocal
是automake的一部分,如果你只是执行autoconf
,它就不会被调用。
您可以开始调用autoreconf
而不是autoconf
来重新生成文件,这应该可以解决问题。或者,如果您不想依赖automake,可以使用m4_include
的其他一些技巧。
关于此事的相关(由我撰写)文件可在Autotools Mythbuster上找到。