Pra*_*kar 5 c automake autoconf gnu autotools
我是GNU autotools的新手,在我尝试的项目中,./configure它会产生以下错误:
./configure: line 9852: syntax error near unexpected token `luajit,'
./configure: line 9852: ` PKG_CHECK_MODULES(luajit, luajit,LLUAJIT="yes",LLUAJIT="no")'
Run Code Online (Sandbox Code Playgroud)
在Configure.in中:
PKG_CHECK_MODULES(luajit, luajit,LLUAJIT="yes",LLUAJIT="no")
if test "x$LLUAJIT" = "xyes"; then
CONFIGFLAGS="$CONFIGFLAGS -DHAVE_LIBLUAJIT"
LUA_CFLAGS="$luajit_CFLAGS"
LUA_LIBS="$luajit_LIBS"
AC_SUBST(LUA_CFLAGS)
AC_SUBST(LUA_LIBS)
if test "x$macos" != "xno"; then
LDFLAGS="${LDFLAGS} -pagezero_size 10000 -image_base 100000000"
fi
else
echo
echo " ERROR! LuaJIT library not found. For better performance, go get it from"
echo " http://www.luajit.org/."
AC_MSG_ERROR("Fatal!")
fi
Run Code Online (Sandbox Code Playgroud)
似乎autoconf(也许)无法找到PKG_CHECK_MODULES宏。我在Internet上搜索了解决方案,发现这是因为libtool未安装。重新安装后libtool,错误仍然存在。
希望有人认识到问题并迅速解决,希望能得到您的帮助。
该PKG_CHECK_MODULES宏在pkg.m4文件中定义并且pkg.m4是 pkgconfig 包的一部分。因此,为了使用这个宏,请确保在您的系统上安装了 pkgconfig,并且 pkg.m4 位于正确的位置,在大多数系统上它位于:
/usr/share/aclocal/pkg.m4
Run Code Online (Sandbox Code Playgroud)
在配置脚本中,启用 libtool 并添加宏目录:
LT_INIT
AC_CONFIG_MACRO_DIRS([m4])
Run Code Online (Sandbox Code Playgroud)
对于那些最终在这里寻找解决方案的人,以下对我有用:
该PKG_CHECK_MODULES宏似乎并没有被适当扩大。当您安装时pkg-config,它是否已安装pkg.m4(在某处/usr/share/aclocal)?如果是这样,请尝试aclocal再次运行(-I m4如果m4在m4子目录中有自定义代码,请尝试再次运行),然后运行autoconf。
如果该方法不起作用并pkg.m4已安装,请尝试运行autoreconf -f(也许autoreconf -i -f)。
如果这不起作用,则需要将其复制pkg.m4到软件包的目录中。通常这是m4子目录。在中(如果使用)和中设置ACLOCAL_AMFLAGS = -I m4(或ACLOCAL_AMFLAGS = -I m4 --install)。然后,运行和和。Makefile.amautomakeAC_CONFIG_MACRO_DIR([m4])configure.acaclocal -I m4autoconf./configure