43个版本
使用旧的Rust 2015
0.3.30 | 2024年2月14日 |
---|---|
0.3.28 | 2023年12月20日 |
0.3.27 | 2023年5月3日 |
0.3.26 | 2022年10月26日 |
0.1.0 | 2014年11月27日 |
2 in 构建工具
7,941,103 monthly downloads
用于19,633个crate(787个直接使用)
49KB
846 行
pkg-config-rs
一个简单的库,旨在作为Cargo包的构建依赖项使用,以便使用系统pkg-config
工具(如果可用)来确定库的位置。
您可以直接使用此crate来查找特定库,或使用system-deps在Cargo.toml
中声明所有您的pkg-config
依赖项。
此库需要Rust 1.30+。
示例
查找名为foo
的系统库,最低版本为1.2.3
extern crate pkg_config;
fn main() {
pkg_config::Config::new().atleast_version("1.2.3").probe("foo").unwrap();
}
查找名为foo
的系统库,没有版本要求(不推荐)
extern crate pkg_config;
fn main() {
pkg_config::probe_library("foo").unwrap();
}
通过目标作用域环境变量进行外部配置
在交叉编译环境中,管理PKG_CONFIG_PATH
和其他变量(例如,针对host
和target
平台)是很有用的。
支持的变量有:PKG_CONFIG_PATH
、PKG_CONFIG_LIBDIR
和PKG_CONFIG_SYSROOT_DIR
。
这些变量也可以提供某些前缀和后缀,以下为优先顺序:
<var>_<target>
- 例如,PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
<var>_<target_with_underscores>
- 例如,PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
<build-kind>_<var>
- 例如,HOST_PKG_CONFIG_PATH
或TARGET_PKG_CONFIG_PATH
<var>
- 纯净的PKG_CONFIG_PATH
此 crate 允许在设置 PKG_CONFIG_SYSROOT_DIR
或 PKG_CONFIG
的情况下,在交叉编译中使用 pkg-config
。您可以通过设置 PKG_CONFIG_ALLOW_CROSS=1
来绕过兼容性检查,但请注意,在没有设置适当的 sysroot 和搜索路径的情况下启用交叉编译中使用 pkg-config
可能会导致构建失败。
一些 Rust sys crates 支持从源代码构建 vendored 库,这可能是弥补 pkg-config
中缺少交叉编译支持的解决方案。
许可证
此项目受以下任一许可证的许可
- Apache 许可证 2.0 版(LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证(LICENSE-MIT 或 https://opensource.org/licenses/MIT)
供您选择。
贡献
除非您明确声明,否则您根据 Apache-2.0 许可证定义的任何有意提交给 pkg-config-rs 的贡献,应如上所述双重许可,不附加任何额外条款或条件。