Ich möchte pkg-config verwenden, um die Include-Verzeichnisse für ein Paket zu ändern, aber es sieht so aus, als würden keine Optionen akzeptiert.
Nach der Eingabe des folgenden Befehls:
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
...es schlägt gleich bei der ersten cflag-Option fehl:
Unknown option -fopenmp
Ist das ein normales Verhalten? Wie kann ich es zum Laufen bringen?
PS: Ich verwende Debian Jessie.
Antwort1
pkg-config
gibt Flags aus, die für die Verwendung mit einem Compiler oder Linker vorgesehen sind. Normalerweise würden Sie es folgendermaßen verwenden:
gcc $(pkg-config --cflags ImageMagick) …
Sie können den Befehl nicht verwenden, pkg-config
um die von einem bestimmten Paket verwendeten Pfade zu ändern. Die Pfade sind in der entsprechenden .pc
Datei definiert,z.B /usr/lib/x86_64-linux-gnu/pkgconfig/ImageMagick.pc
Um dies anzupassen, ist es am sichersten, die Datei woanders hin zu kopieren, sie entsprechend zu ändern und den Pfad zur Datei mithilfe der PKG_CONFIG_PATH
Umgebungsvariable anzugeben.
.pc
Beachten Sie, dass der Build eine gültige Datei für Sie erstellt haben sollte, wenn Sie die ImageMagick-Bibliotheken selbst erstellt haben . Sie sollten auch keine .pc
Dateien verwenden, um Optionen wie anzugeben ; diese sollten nicht in Ihren Build-Befehl, in Ihr Makefile oder -fopenmp
in die Umgebungsvariablen oder (oder Makefile-Variablen) aufgenommen werden CPPFLAGS
.CFLAGS
CXXFLAGS