文盘Rust -- FFI 浅尝
💡
原文中文,约7800字,阅读约需19分钟。
📝
内容提要
本文介绍了Rust FFI的使用,通过几个例子展示了Rust与C语言的交互步骤,包括调用C代码、绑定C语言动态链接库和封装C库。
🎯
关键要点
- Rust FFI 是 Rust 与其他语言互调的桥梁,能够继承 C 语言的历史资产。
- 场景一展示了如何调用 C 代码,包括创建工程、配置 Cargo.toml、编写 C 程序和 Rust 主程序。
- 使用 build.rs 编译 C 代码并生成动态链接库。
- 场景二介绍了如何使用 bindgen 通过头文件绑定 C 语言动态链接库,包含修改 Cargo.toml 和编写头文件的步骤。
- 通过 bindgen 生成 Rust 绑定代码,简化了手动绑定的过程。
- 场景三展示了如何封装一个 C 编写的库 secp256k1,涉及创建库工程、引入子模块和编写绑定文件。
- 手动编译 secp256k1 库以解决链接错误,并成功运行测试。
- 提供了完整代码的 GitHub 链接,供读者参考和运行。
➡️