使用pkg-config宏PKG_CHECK_MODULES失败

eri*_*icg 10 macos automake autoconf pkg-config osx-snow-leopard

我确信这是一个相当简单的问题.我有一个非常简单的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)
Run Code Online (Sandbox Code Playgroud)

然后我可以从命令行执行autoconf,它确实生成了一个配置脚本.但是,当我运行配置脚本时,我收到以下错误:

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

如果我使用命令行中的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  
Run Code Online (Sandbox Code Playgroud)

所以,似乎很清楚,由于某种原因,PGK_CHECK_MODULE无法定位宏,我不知道为什么.

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

Wil*_*ell 16

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