11

我确信这是一个相当简单的问题。我有一个非常简单的 configure.ac 文件,我用它来学习 autoconf 和 pkg-config 如何一起工作。该confgure.ac文件如下所示:

AC_PREREQ(2.61)
AC_INIT(autoconf_test, 1.0, nowhere@dev.null)

PKG_CHECK_MODULES(libusbmuxd, libusbmuxd >= 0.1.4)

然后我可以从命令行执行 autoconf,它会生成一个配置脚本。但是,当我运行配置脚本时,出现以下错误:

./configure: line 1618: syntax error near unexpected token `libusbmuxd,'
./configure: line 1618: `PKG_CHECK_MODULES(libusbmuxd, libusbmuxd >= 0.1.4)'

如果我从命令行使用 pkg-config 程序检查它是否可以找到这个库,它会成功。

/usr/lib/pkgconfig $pkg-config --libs --cflags --modversion libusbmuxd

1.0.7
-I/usr/local/Cellar/usbmuxd/1.0.7/include  -L/usr/local/Cellar/usbmuxd/1.0.7/lib -lusbmuxd  

因此,很明显,由于某种原因PGK_CHECK_MODULE无法找到宏,我不知道为什么。

这可能不是特定于操作系统的,但我使用的是 Mac OS X 10.6.8。

4

2 回答 2

19

当您进行引导(即运行 autoreconf)时,aclocal 无法找到 pkg.m4。这是因为 pkg-config 要么没有安装,要么安装在 aclocal 不知道的地方。(即,它的安装前缀与 automake 不同。)要解决此问题,您需要找到pkg-config安装位置pkg.m4并将该目录添加到搜索路径中。例如,如果pkg-config已安装$HOME/share/aclocal/pkg.m4,您应该运行autoreconf -I$HOME/share/aclocal

实际上有一个大的学派认为将 pkg-config 与 autotools 一起使用的最佳方法是不使用它。如果您查看 autoconf 邮件列表存档,您会看到这个有争议的广告。请注意,许多人确实建议完全避免它。

于 2011-12-21T11:43:43.630 回答
1

似乎自制软件的人认为这不是他们的问题并将其扫入警告。超级令人沮丧,因为没有人会看到,因为没有人使用自制软件或自动制作软件,并期望必须深入挖掘错误的细节。这是链接。

于 2016-02-02T21:04:20.110 回答