静态库

1

静态库、动态库和 ABI

5 分钟

前面几篇讲的是函数级 FFI:extern "C"、字符串、内存归属、回调和 void *ctx。

真正交付给 C 项目时,还要回答另一个问题:

C 工程到底链接什么文件?
头文件声明哪些符号?
这些符号的 ABI 能不能长期稳定?
升级 Rust 代码后,C 侧要不要改?

C 开发者熟悉 .a、.so、.h 和 ABI。Rust 交付给 C 使用时,也要回到这些概念,而不是把 Cargo 内部模型暴露给 C。

阅读更多