我想使用 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 变量)中。CFLAGS
CXXFLAGS