【问题标题】:PKG_CHECK_MODULES syntax error near luajitluajit 附近的 PKG_CHECK_MODULES 语法错误
【发布时间】:2016-04-16 03:44:40
【问题描述】:

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

希望有人认识到问题并快速解决问题。任何帮助将不胜感激。

【问题讨论】:

    标签: c gnu autotools autoconf automake


    【解决方案1】:

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

    PKG_CHECK_MODULES breaking in solaris

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

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

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

    【讨论】:

    • 只是想补充一点:如果不包含“autogen.sh”,则可能会发生这种情况(这意味着在重新结帐后已经有一个 ./configure 脚本)。 autogen 脚本通常只是“autoreconf -fiv”之类的。感谢您的帮助!
    【解决方案2】:

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

    /usr/share/aclocal/pkg.m4
    

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

    LT_INIT
    AC_CONFIG_MACRO_DIRS([m4])
    

    【讨论】:

    • 请发布您的整个 configure.ac。
    • 您的配置脚本中缺少两个配置,请参阅更新后的答案。
    【解决方案3】:

    在我的情况下,我在安装libtool之前添加了conf文件,所以你需要在安装libtool之后再次运行autoreconf -i -f

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      • 2017-08-31
      • 2023-03-03
      • 2016-02-16
      • 2018-08-21
      • 2017-01-12
      • 2014-03-12
      相关资源
      最近更新 更多