Я хотел бы использовать pkg-config для изменения каталогов включения пакета, но, похоже, он не принимает никаких параметров.
После ввода следующей команды:
pkg-config --cflags ImageMagick -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/x86_64-linux-gnu/ImageMagick-6 -I/usr/include/ImageMagick-6
...он сразу же дает сбой при первой же опции cflag:
Unknown option -fopenmp
Это нормальное поведение? Как мне заставить это работать?
PS: Использую Debian Jessie.
решение1
pkg-config
выводит флаги, предназначенные для использования с компилятором или компоновщиком. Обычно вы используете это так:
gcc $(pkg-config --cflags ImageMagick) …
Вы не можете использовать pkg-config
команду для изменения путей, используемых данным пакетом. Пути определены в соответствующем .pc
файле,например /usr/lib/x86_64-linux-gnu/pkgconfig/ImageMagick.pc
. Чтобы настроить это, самый безопасный вариант — скопировать этот файл в другое место, изменить его соответствующим образом и указать путь к файлу с помощью PKG_CONFIG_PATH
переменной среды.
Обратите внимание, что если вы сами собрали библиотеки ImageMagick, сборка должна была создать .pc
для вас допустимый файл. Вам также не следует использовать .pc
файлы для указания таких опций, как -fopenmp
; они должны быть в вашей команде сборки, в вашем makefile или в CPPFLAGS
, CFLAGS
или CXXFLAGS
переменных окружения (или переменных makefile).