Использование макроса pkg-config PKG_CHECK_MODULES завершилось ошибкой - PullRequest
10 голосов
/ 20 декабря 2011

Я уверен, что это довольно простая проблема. У меня есть очень простой файл 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 ]

16 голосов
/ 21 декабря 2011

Когда вы запускаете загрузку (то есть запускаете autoreconf), aclocal не может найти pkg.m4. Это связано с тем, что pkg-config либо не был установлен, либо был установлен где-то, о чем aclocal не знает. (то есть он был установлен с префиксом, отличным от automake.) На самом деле существует большая школа мысли, которая говорит, что лучший способ использовать pkg-config с autotools - это не использовать его. Если посмотреть через архив Autoconf списка рассылки, вы увидите эту обсуждаемый ад-тошноту. Я не говорю, что вам следует избегать использования pkg-config (хотя я считаю, что это лучше всего делать), но имейте в виду, что многие люди рекомендуют избегать его полностью.

0 голосов
/ 03 февраля 2016

Кажется, доморощенные люди решили, что это не их проблема, и предупредили об этом. супер разочарование, так как никто не увидит, так как никто не использует homebrew или automake и ожидает, что придется копаться в деталях того, что не так. Вот ссылка.

...