Rust 使用 .rlib
2021-09-10 本文已影响0人
普通上班族老王
前言
Rust 引用 .rlib 库
电脑环境
Windows 10
rustup 1.24.3 (ce5817a94 2021-05-31)
rustc 1.55.0 (c8dfcfe04 2021-09-06)
msvc 2019
代码编写
我这里是一步步来的,从创建一个新项目开始,如果嫌啰嗦,可直接跳到最下面,下载demo源码看
先创建一个 hello_rlib 项目
cargo new hello_rlib
编写 src/main.rs
// 导入 test_rlib
// 不过当前会报错,这个没事,后面走完流程就没事了
extern crate test_rlib;
fn main() {
println!("Hello, world!");
// 调用 test 函数
test_rlib::test();
}
Cargo.toml package 模块加上 build.rs, 并且增加 test_rlib 工作成员
[package]
name = "hello_rust"
version = "0.1.0"
edition = "2018"
build = "build.rs"
[dependencies]
[workspace]
members = [
"test_rlib"
]
项目根目录下创建 build.rs 文件(编译过C这些的同学应该不陌生),并编写以下代码
fn main() {
// .rlib 路径
println!("cargo:rustc-link-search=./target/debug/");
}
在项目下,创建 lib 库
cargo new test_rlib --lib
编写 test_rlib/src/lib.rs 代码
pub fn test() {
println!("hello test");
}
编译 test_rlib
这里是让 target/debug/ 目录下生成 libtest_rlib.rlib 文件
cargo build --package test_rlib
最后 run 项目
cargo run
输出
Hello, world!
hello test
至此整个流程就结束了
坑
VS Code extern crate xxx 报错
显示 extern crate test_rlib; 错误,应该是插件 rust-analyzer(版本v0.2.735) 的问题,这个问题或许要等待 rust-analyzer 的更新了。
当然,如果有发现其他解决方法,我也会第一时间更新该文章
VS Code 无法进行库的代码联想
暂无发现解决方法
总结
其实就两个点
- 项目使用
extern crate 库名;
导入库 - build.rs
println!("cargo:rustc-link-search=./target/debug/");
关联.rlib 库路径