我确信这是一个相当简单的问题。我有一个非常简单的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。
答案 0 :(得分:16)
当你进行自举(即运行autoreconf)时,aclocal无法找到pkg.m4。这是因为pkg-config未安装或已安装在aclocal不知道的地方。 (也就是说,它安装时的前缀与automake不同。)实际上有一大堆思想认为使用pkg-config和autotools的最佳方法是不使用它。如果你查看autoconf邮件列表存档,你会看到这个争论不休的广告。我并不是说你应该避免使用pkg-config(尽管我认为最好这样做),但请注意很多人建议完全避免它。
答案 1 :(得分:0)
似乎自制软件的人们认为这不是他们的问题,而是将其扫成警告。超级令人沮丧,因为没有人会看到,因为没有人使用自制软件或自动化,并期望必须深入挖掘错误的细节。 Here's the link.