Rust语言编译动态库和静态库说明

📅 2026/7/30 14:40:40 👁️ 阅读次数 📝 编程学习
Rust语言编译动态库和静态库说明

只列举部分类型,针对Linux和Windows系统。

crate-type的类型:rlib,staticlib,dylib,cdylib。

提示:

(1)dylib和cdylib不能同时写到Cargo.toml文件的crate-type中。

(2)dylib生成的库默认不适合 C 调用,Rust 项目内部动态加载,并且强烈不建议于 C 调用;而cdylib是为 C 调用专门设计的。

crate-typeLinux 输出文件Windows 输出文件
rlibxxx.rlibxxx.rlib
staticlibxxx.axxx.lib(MSVC) 或 xxx.a (MinGW)
dylibxxx.soxxx.dll
cdylibxxx.soxxx.dll

cargo编译时,在Cargo.toml中可以指定一个或多个类型。

[lib] crate-type = ["rlib"]
[lib] crate-type = ["rlib", "cdylib]
[lib] crate-type = ["rlib", "cdylib", "staticlib"]

rustc编译库时,需要指定参数 --crate-type

rustc--crate-type=rlib lib.rs

rustc--crate-type=rlib lib.rs -o libtest.rlib