私は 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 $
行AC_INIT ([helloworld], [0.1], [[email protected]])
が間違っているかどうかを確認するためにGoogle検索を行いました。しかし、AC_INIT
を使用する正しい方法のようです。
どうすれば修正できますか?
また、以下はMakefile.am
ファイルの内容です(これがエラーに関連する場合):
AUTOMAKE_OPTIONS = foreign
bin_PROGRAMS = helloworld
helloworld_SOURCES = hello.c
それは単なる空白の問題のようです: Autoconf Manual の .1.2 The Autoconf Language によると:
引数を取るマクロを呼び出す場合、マクロ名と開き括弧の間に空白があってはなりません。
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]])