7个版本
0.1.6 | 2020年5月13日 |
---|---|
0.1.5 | 2020年5月12日 |
#8 在 #cdylib
5KB
cdylib-plugin.rs
简介
插件风格共享库是为特定主机程序设计的共享库。主机程序调用插件,插件回调用主机程序的API。重要的是,这意味着插件引用仅在主机程序中定义的符号;并且在插件构建时这些符号没有定义。
例如,一个PostgreSQL扩展(使用插件风格共享库)可能使用SPI在运行的服务器中当前事务中执行查询。如SPI_connect
之类的符号在PostgreSQL中定义,并由插件引用。这些符号在插件加载时解决,但不能在插件构建时解决。
问题
在Rust中,插件风格cdylib包存在两个问题
解决方案
希望这些问题在未来得到妥善解决。在此之前,cdylib-plugin.rs
提供了解决这些问题的解决方案。
将正常依赖项和构建依赖项添加到您的crate中
[dependencies]
# ...
cdylib-plugin = "0.1"
[build-dependencies]
# ...
cdylib-plugin = "0.1"
在您的crate中添加一个build.rs
,例如
extern crate cdylib_plugin;
fn main() {
// ...
cdylib_plugin::buildflags();
}
在您的集成测试或安装代码中,使用cdylib_plugin::cdylib_path()
找到库路径。