Autoconf抱怨未定义的宏,建议m4_pattern_allow?这是怎么回事?



我做了很多C和一些C++编程,但以前从未使用过自动工具(我很久以前就在做这件事了,这些工具还不可用(。无论如何,我在Xubuntu 20.04上,我正在上https://earthly.dev/blog/autoconf/我已经创建了这个配置.ac

AC_INIT([helloworld], [0.1], [myemail@gmail.com])
AM_INIT_AUTOMAKE
AC_PROG_CC
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

这似乎与教程一致,我做了aclocal还可以,但当我尝试做autoconf时,我得到了

configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."

我不知道为什么会出现这种情况,虽然我可以大致猜测,但我不知道这些安装内容是什么,也不知道为什么configure似乎认为我需要它们。

我不太关心您链接的文章的一些细节。一般来说,不应该手动运行单独的自动工具(aclocalautoconf(,而建议经常这样做会破坏推荐人对我的可信度。请改用autoreconf。它确定要运行哪个单独的自动工具,并以正确的顺序运行它们。大多数时候,这就是你所需要做的

但是,对于一个新的或新的自动工具项目,或者如果您收到诸如报告脚本和工具丢失之类的消息,请将--install选项添加到您的autoreconf运行中。在这种情况下,我倾向于使用--force选项来进行良好的度量,尽管这通常是不必要的:

autoreconf --install --force

--install部分将确保您当前使用的Autotools组件所需的所有辅助脚本都安装在项目源代码树中,并且--force选项将替换现有的任何辅助脚本。

注意:如果您计划在configure.ac中使用AC_CONFIG_AUX_DIR,那么在运行autoreconf --install之前将其放入是很方便的,因为它会影响助手脚本的放置位置。

最新更新