каково значение pkg-config в gcc?

При создании примера dbus я обнаружил, что нам нужно добавить pkg-config в gcc. Например:

gcc `pkg-config --cflags --libs dbus-1` <file_name> -o <file_name.out>

Каково значение pkg-config --cflags --libs dbus-1? что такое pkg-config здесь? при чем здесь дополнительные cflags? что такое --libsздесь?


person dexterous    schedule 06.12.2013    source источник
comment
Попробуйте выполнить команду pkg-config --cflags --libs dbus-1. Возможно, это поможет вам ответить на ваш вопрос!   -  person devnull    schedule 06.12.2013


Ответы (2)


gcc `pkg-config --cflags --libs dbus-1` <file_name> -o <file_name.out>

запустит команду pkg-config и передаст ее вывод в качестве параметров в gcc.

Цель pkg-config состоит в том, чтобы упростить компоновку библиотек, поскольку разные операционные системы и дистрибутивы требуют разных флагов компиляции (также известных как CFLAGS), путей включения библиотек и библиотек для ссылки. pkg-config использует файлы конфигурации (определенные библиотеками) для генерации указанной выше информации для компиляторов и позволяет нам не беспокоиться о том, в какой операционной системе или дистрибутиве происходит компиляция.

--cflags означает, что pkg-config должен указывать флаги компиляции для перечисленных пакетов. --libs означает, что pkg-config должен предоставить информацию о связывании для перечисленных пакетов.

а dbus-1 — имя пакета.

person cyphar    schedule 06.12.2013

gcc `pkg-config --cflags --libs dbus-1` <file_name> -o <file_name.out>

включает в себя эти части:

  1. выполнение примечания pkg-config --cflags --libs dbus-1 `` запустить команду между ними.
  2. запустить gcc с флагами 1. возвращает и входной файл <file_name> выходной объектный файл.
person 0x90    schedule 06.12.2013