【发布时间】:2022-02-02 19:25:38
【问题描述】:
简介
我正在尝试制作一个简单的 autotools 项目。我正在改编本教程:
https://crypto.bi/autotools/
我拥有所有必需的文件(我认为)并运行aclocal --verbose,我得到了很多输出,其中大部分可能没有太大帮助,只保留我认为相关的一行:
...
aclocal: found macro AM_INIT_AUTOMAKE in /usr/share/aclocal-1.13/init.m4: 23
...
这个程序完成后,没有创建任何aclocal.m4,据我了解,应该有。
详情
运行aclocal后,如果我运行automake --add-missing,会出现以下错误:
configure.ac: error: no proper invocation of AM_INIT_AUTOMAKE was found.
configure.ac: You should verify that configure.ac invokes AM_INIT_AUTOMAKE,
configure.ac: that aclocal.m4 is present in the top-level directory,
configure.ac: and that aclocal.m4 was recently regenerated (using aclocal)
automake: error: no 'Makefile.am' found for any configure output
automake: Did you forget AC_CONFIG_FILES([Makefile]) in configure.ac?
文件
我有以下configure.ac
AC_INIT([YOURPROJECT], [1.0])
AC_CONFIG_SRCDIR([.])
AC_INIT_AUTOMAKE
AC_CONFIG_MACRO_DIRS([m4])
AC_PREREQ([2.69])
AC_CONFIG_HEADERS([config.h])
AC_PROG_CC
AC_CHECK_HEADERS([stdlib.h])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
还有以下Makefile.am:
AM_LDFLAGS=
AM_CPPFLAGS=
ACLOCAL_AMFLAGS=-I m4
bin_PROGRAMS=main
main_SOURCES=main.c
main_LDADD=
问题
如何生成 aclocal.m4 文件?
【问题讨论】:
-
作为一项规则,始终运行
autoreconf并担心要调用哪些工具以及以何种顺序调用,切勿调用autoconf或automake或aclocal或“autoheader”或其他手动。此外,crypto.bi 示例使用非常过时的命令,非常奇怪的宏序列。网上有更好的介绍。