luajit附近的PKG_CHECK_MODULES语法错误

时间:2016-04-16 03:44:40

标签: c gnu autotools autoconf automake

我是GNU autotools的新手。在我的项目中,当我尝试./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。我重新安装libtool但错误仍然相同。

希望有人认识到这个问题并快速解决问题。任何帮助都将受到赞赏。

3 个答案:

答案 0 :(得分:3)

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

PKG_CHECK_MODULES breaking in solaris

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.am)(如果您使用的是automake),AC_CONFIG_MACRO_DIR([m4])中设置configure.ac。然后运行aclocal -I m4autoconf以及./configure

答案 1 :(得分:1)

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

pkg.m4

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

/usr/share/aclocal/pkg.m4

答案 2 :(得分:0)

就我而言,我在安装libtool之前添加了conf文件,因此您需要在安装libtool之后再次运行autoreconf -i -f