我正在关注https://robots.thoughtbot.com/the-magic-behind-configure-make-make-install学习如何使用autoconf
和automake
创建configure
脚本和Makefile
。
以下是文件内容configure.ac
:
AC_INIT ([helloworld], [0.1], [[email protected]])
AM_INIT_AUTOMAKE
AC_PROG_CC
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
但是,当我运行aclocal
命令时,出现以下错误。
user $ aclocal
configure.ac:2: error: AC_INIT should be called with package and version arguments
/usr/share/aclocal-1.14/init.m4:29: AM_INIT_AUTOMAKE is expanded from...
configure.ac:2: the top level
autom4te: /usr/bin/m4 failed with exit status: 1
aclocal: error: echo failed with exit status: 1
user $
我使用 Google 搜索来查看该行是否不正确。但看起来这是正确的使用方法。AC_INIT ([helloworld], [0.1], [[email protected]])
AC_INIT
我该如何解决 ?
此外,以下是文件的内容Makefile.am
(如果这与错误有关):
AUTOMAKE_OPTIONS = foreign
bin_PROGRAMS = helloworld
helloworld_SOURCES = hello.c
答案1
这似乎只是一个空白的问题:根据3.1.2 Autoconf 语言来自Autoconf手册:
调用带参数的宏时,宏名和左括号之间不能有任何空格。
AC_INIT ([oops], [1.0]) # incorrect AC_INIT([hello], [1.0]) # good
所以你需要改变
AC_INIT ([helloworld], [0.1], [[email protected]])
到
AC_INIT([helloworld], [0.1], [[email protected]])