使用pkg-config宏PKG_CHECK_MODULES失败

时间:2011-12-20 15:54:56

标签: macos osx-snow-leopard autoconf automake pkg-config

我确信这是一个相当简单的问题。我有一个非常简单的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脚本时,我收到以下错误:

./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。

2 个答案:

答案 0 :(得分:16)

当你进行自举(即运行autoreconf)时,aclocal无法找到pkg.m4。这是因为pkg-config未安装或已安装在aclocal不知道的地方。 (也就是说,它安装时的前缀与automake不同。)实际上有一大堆思想认为使用pkg-config和autotools的最佳方法是不使用它。如果你查看autoconf邮件列表存档,你会看到这个争论不休的广告。我并不是说你应该避免使用pkg-config(尽管我认为最好这样做),但请注意很多人建议完全避免它。

答案 1 :(得分:0)

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