找不到第三方aclocal目录下的M4宏

M4 macros in the 3rd-party aclocal directory are not found

本文关键字:M4 第三方 aclocal 找不到      更新时间:2023-10-16

我在一个没有root访问权限的系统上本地安装了一个新版本的automake(1.15)。本地目录的bin文件夹是我的PATH中的第一个目录。

我也在本地安装了gtk+-2.0,现在我想构建和安装一个需要gtk作为依赖项的应用程序,即我想要的应用程序的configure.ac脚本包含:

PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.0])

为了确保找到m4宏,我将gtk_install_dir/share/aclocal中的.m4文件复制到aclocal --print指定的位置(automake_install_dir/share/aclocal/)。

我还设置了PKG_CONFIG_PATH=gtk_install_dir/lib/pkgconfig

但是,当我运行:
$ libtoolize
$ aclocal
$ autoconf
$ automake
$ ./configure

我得到一个错误信息:

./configure: line 13106: syntax error near unexpected token `GTK,'
./configure: line 13106: `PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.0)'

运行aclocal --verbose,我可以清楚地看到没有提到gtk,所以它显然没有找到gtk+宏。

我以前没有使用过这些构建工具,我错过了什么?我似乎无法让配置脚本识别gtk已安装!

任何建议都非常感谢,谢谢。

编辑:我可以确认pkg-config知道我的gtk安装在哪里:

$ pkg-config --print-variables gtk+-2.0
exec_prefix
gtk_binary_version
...

也被pkg-config --debug gtk+-2.0证实。如果pkg-config知道所有关于包的信息,为什么autotools不知道?

您需要确保安装了pkg-config-devel或类似名称的包。否则,aclocal无法找到./configure调用pkg-config所需的 PKG_CHECK_MODULES

你试图构建的软件可能在子目录下有一个pkg.m4文件,比如m4/,但是如果它没有正确配置,它可能不会注意到,如果有这样的目录,尝试使用autoreconf -fis -I m4