由於某種原因,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

相關內容