2015-10-10 2 views
1

Привет, У меня возникла проблема с моим недавно установленным дистрибутивом Fedora. Предполагается, что pkg-config предоставляет флаг компоновщика, что-то вроде pkg-config --cflags libboost-dev. Но pkg-config не может найти большинство пакетов библиотеки. pkg-config --list-all показывает, что он может найти только несколько пакетов.Поставка * .pc файл для pkg-config

Я искал в Интернете и узнал, что pkg-config находит пакеты путем поиска в заранее определенных путях для файлов * .pc. Однако для большинства пакетов (как предустановленных, так и установленных пользователем) нет такого .pc-файла. Таким образом, файл * .pc не создается каждый раз при установке пакета.

1, Как я могу предоставить файл .pc для каждого из пакетов, которые уже были установлены? 2, Как я могу убедиться, что каждый раз, когда установлен новый пакет, предоставляется .pc-файл?

+0

Я использую dnf (ранее yum в Fedora) для установки большинства пакетов. –

+0

Вы устанавливаете пакеты 'xyz-devel', а не просто' xyz'? Я думаю, что пакеты разработки предоставляют файлы .pc, так как они также устанавливают заголовки - обычные пакеты обычно не – chrisb2244

+0

Я попробовал boost, gsl, они оба используются для разработки кода на C++, но не имеют .pc-файлов. –

ответ

1

Fedora packaging guidelines содержит информацию о способах создания пакетов и файлах, которые они должны содержать.

Раздел, посвященный -devel packages, имеет особое значение.

Чтобы выделить некоторые части

Есть некоторые типы файлов, которые почти всегда принадлежат в -devel упаковке:

  • заголовков файлов (foo.h), как правило, находится в/USR/включать
  • Файлы статической библиотеки, когда пакет не предоставляет сопоставимые файлы разделяемой библиотеки. См. Packaging:Guidelines#Packaging_Static_Libraries для получения дополнительной информации об этом сценарии.
  • Неверсифицированные файлы общей системной библиотеки, если присутствует соответствующий файл с общей версией системной библиотеки.

В следующем разделе о Pkgconfig Files, страница информирует читателя, что

Размещение файлов pkg-config (.pc) зависит от их USECASE. Поскольку они почти всегда используются для целей разработки, их следует поместить в пакет -devel.

Разумным исключением является то, что основной пакет сам по себе является средством разработки, не установленным в пользовательской среде выполнения, например. gcc или gdb.

В результате, для того, чтобы получить либо файлы заголовков в #include или .pc файлы, чтобы сказать вам флаги компилятора, то вам нужно xyz-devel пакет, где xyz это имя стандартного пакета.

Полезный сайт для поиска соответствующих имен пакетов для установки, если вы не можете/не хотите их угадывать, это Fedora Packages search page.

 Смежные вопросы

  • Нет связанных вопросов^_^