由于某种原因,pkg-config 无法识别任何选项

由于某种原因,pkg-config 无法识别任何选项

我想使用 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环境变量(或makefile 变量)中。CFLAGSCXXFLAGS

相关内容