问题描述
当尝试通过 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