Как я знаю, где установить мой .pc файл? Эти файлы помещаются в различные места в различных операционных системах. Цель состоит в том, чтобы смочь использовать что-то как $(INSTALL) mylib.pc $$(pkg-config --pcdir)
в цели установки. Я думал pkg-config
смог бы сказать мне так или иначе, но ничего не может найти.
Я ищу "автономное" решение, применимое в простом Make-файле (не должен требовать поддержки со стороны автоинструментов или подобный).
ОБНОВЛЕНИЕ: Очевидно, теперь есть способ сделать это:
pkg-config --variable pc_path pkg-config
Найдено в этом отчете об ошибке (см. Комментарий №4). Текущая страница руководства отображается, чтобы задокументировать это.
Исходный ответ:
Ужасное хакерское решение (при условии, что оболочка Борна):
pkg-config --debug 2>&1 |grep Scanning | sed -e 's/Scanning directory //' -e "s/'//g"
Это может дать вам несколько местоположений.
отредактируйте @just кто-нибудь
более короткую версию
pkg-config --debug 2>&1 | sed -ne '/Scanning directory /s///p'
и остановитесь после первого каталога:
pkg-config --debug 2>&1 | sed -ne '/Scanning directory /{s///p;q;}'
К сожалению, для стандартной установки pkg-config
(для версии 0.23) нет способа извлечь путь к компьютеру по умолчанию. ", за исключением выполнения строк
в двоичном файле (например, строк / usr / bin / pkg-config | grep '/usr/.*/pkgconfig'
).
Если вы можете установить собственную сборку, просто исправьте ее, чтобы записать значение PKG_CONFIG_PC_PATH
при запуске с соответствующей опцией.
Другой вариант, который, вероятно, вам не поможет (но я бы все равно упомянул его для полноты), - это установить переменную среды PKG_CONFIG_PATH
при вызове pkg-config
.
она должна идти в ${libdir}/pkgconfig (т.е. ${prefix}/lib/pkgconfig)
в принципе, если вы устанавливаете библиотеки и они идут в ${libdir}, то ваш .pc файл должен быть в ${libdir}/pkgconfig и нигде больше.