Luajit附近的PKG_CHECK_MODULES语法错误

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,错误仍然存​​在。

希望有人认识到问题并迅速解决,希望能得到您的帮助。

flu*_*ter 5

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)


Pra*_*kar 5

对于那些最终在这里寻找解决方案的人,以下对我有用:

PKG_CHECK_MODULES在日光浴中破裂

PKG_CHECK_MODULES宏似乎并没有被适当扩大。当您安装时pkg-config,它是否已安装pkg.m4(在某处/usr/share/aclocal)?如果是这样,请尝试aclocal再次运行(-I m4如果m4m4子目录中有自定义代码,请尝试再次运行),然后运行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