Каково значение 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?

Ответ 1

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

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

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

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

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

Ответ 2

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

содержит следующие части:

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