我是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
但错误仍然相同。
希望有人认识到这个问题并快速解决问题。任何帮助都将受到赞赏。
答案 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 m4
和autoconf
以及./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