PKG_CHECK_MODULES luajit 附近的语法错误

PKG_CHECK_MODULES syntax error near luajit

我是 GNU 的新手 autotools.In 当我尝试我的项目时 ./configure 它会生成以下错误:

./configure: line 9852: syntax error near unexpected token `luajit,'
./configure: line 9852: `    PKG_CHECK_MODULES(luajit, luajit,LLUAJIT="yes",LLUAJIT="no")'

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

似乎 autoconf(可能)无法找到 PKG_CHECK_MODULES 宏。我在互联网上搜索解决方案,发现这是因为 libtool 没有 installed.I 重新安装 libtool 但错误仍然存​​在。

希望有人能识别问题并快速解决 it.Any 帮助将不胜感激。

PKG_CHECK_MODULES 宏在 pkg.m4 文件中定义,pkg.m4 是 pkgconfig 包的一部分。因此,为了使用这个宏,请确保您的系统上安装了 pkgconfig,并且 pkg.m4 位于正确的位置,在大多数系统上它位于:

/usr/share/aclocal/pkg.m4

在配置脚本中,启用 libtool 并添加宏目录:

LT_INIT
AC_CONFIG_MACRO_DIRS([m4])

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

PKG_CHECK_MODULES breaking in solaris

PKG_CHECK_MODULES 宏似乎没有正确展开。当您安装 pkg-config 时,是否安装了 pkg.m4(在 /usr/share/aclocal 之类的地方)?如果是这样,请再次尝试 运行ning aclocal(如果您在 m4 子目录中有自定义 m4 代码,可以使用 -I m4,然后 运行 autoconf.

如果这不起作用并且安装了 pkg.m4,请尝试 运行ning autoreconf -f(也许 autoreconf -i -f)。

如果这不起作用,您需要将 pkg.m4 复制到您的包的目录中。通常这是 m4 子目录。在 Makefile.am 中设置 ACLOCAL_AMFLAGS = -I m4(或 ACLOCAL_AMFLAGS = -I m4 --install)(如果您使用 automake),在 configure.ac 中设置 AC_CONFIG_MACRO_DIR([m4])。然后 运行 aclocal -I m4autoconf./configure.

在我的例子中,我在安装 libtool 之前添加了 conf 文件,因此您需要在安装 libtool

之后再次 运行 autoreconf -i -f