Как заставить pkg-config использовать PKG_CONFIG_PATH? - PullRequest
1 голос
/ 14 января 2020

Я написал небольшую библиотеку и пытаюсь настроить ее для использования с pkg-config для тех в моей организации, кому может понадобиться использовать ее позже. Поэтому мой установщик помещает файл .p c в / usr / local / lib / pkgconfig, и я недавно обнаружил, что по какой-то причине его нет в списке каталогов по умолчанию, который сканирует pkg-config на наличие p c, несмотря на то, что / usr / local является каноническим префиксом для локально скомпилированного программного обеспечения. Итак, мне нужно добавить / usr / local / lib / pkgconfig в PKG_CONFIG_PATH.

Однако я обнаружил, что, несмотря на утверждения на странице руководства, собственное сообщение об ошибке pkg-config и везде в сети, pkg-config на самом деле не смотрит на PKG_CONFIG_PATH. Сообщение об ошибке говорит мне добавить / usr / local / lib / pkgconfig (который содержит файл .p c, который я ищу) к PKG_CONFIG_PATH, когда я уже ясно сделал это.

[chris@delphinus-a pkgconfig]$ pwd
/usr/local/lib/pkgconfig
[chris@delphinus-a pkgconfig]$ ls
libexample.pc
[chris@delphinus-a pkgconfig]$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
[chris@delphinus-a pkgconfig]$ echo $PKG_CONFIG_PATH
/usr/local/lib/pkgconfig
[chris@delphinus-a pkgconfig]$ pkg-config --cflags libexample
Package libexample was not found in the pkg-config search path.
Perhaps you should add the directory containing `libexample.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libexample', required by 'virtual:world', not found
[chris@delphinus-a pkgconfig]$ echo $PKG_CONFIG_PATH
/usr/local/lib/pkgconfig
[chris@delphinus-a pkgconfig]$ pkg-config --variable pc_path pkg-config
/usr/lib64/pkgconfig:/usr/share/pkgconfig
[chris@delphinus-a pkgconfig]$ pkg-config --version
1.6.3

Содержимое libexample.p c:

prefix=/usr/local
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include

Name: libexample
Description: example library.

Libs: -L${libdir}  -lpthread -ltimeutil -lczmq -lzmq
Cflags: -I${includedir}

Итак, если PKG_CONFIG_PATH действительно переменная окружения, которую мне нужно установить, как мне получить pkg-config для ее фактического использования? Или что еще мне здесь не хватает? Это в Fedora 31, FWIW.

1 Ответ

1 голос
/ 14 января 2020

Очевидно (судя по очень большому номеру версии), вы используете какую-то другую реализацию pkg-config: а именно, с этой страницы Я понимаю, что она называется pkgconf и предназначена для каким-то образом заменить программу FDO pkg-config.

Чтобы добиться успеха с PKG_CONFIG_PATH, я полагаю, вам следует установить реальный pkg-config из FDO, чья версия должна быть в диапазоне 0,29x.

...