在 pkg-config 搜索路径中找不到通过 Homebrew 安装的软件包

问题描述

当尝试通过 Swift Package Manager 链接到系统安装的库时,在 pkgConfig 下指定它时,它说在 pkg 中找不到安装的包-config 搜索路径。它建议找到模块附带的 .pc 文件,但没有。

如何将图书馆与 SPM 链接起来?

解决方法

我的做法是创建 .pc 文件并将其放入 /usr/local/lib/pkgconfig 中,其中 .pc 文件保存在您自己的位置。

.pc 文件基本上遵循以下格式:

  • 定义的变量
  • 名称、描述、版本
  • 库和 Cflags

例如:

prefix=/usr/local/ModuleFolder
libdir=${prefix}/lib
includedir=${prefix}/include

Name: samplemodule
Description: Appears in a Stack Overflow answer.
Version: 1.0.0
Libs: -L${libdir}
Cflags: -I${includedir}

您可以使用 pkg-config yourmodule --libs --cflags 检查 pkg-config 现在是否检测到该文件,如果是,那么它也应该在 Package.swift 中工作。

如果应用程序是通过 Homebrew 安装的,则可能应该向开发人员报告缺少 .pc 文件的问题,尽管他们在某些情况下可能不想实现它。

有关 pkg-config 文件的更多信息,请访问 https://people.freedesktop.org/~dbn/pkg-config-guide.html