rust - 使用 CLion 成功构建后,为什么没有在 target/debug 目录中生成 .rlib?
问题描述
我正在尝试使用安装了 Rust 插件的 CLion IDE 构建一个库。成功构建后,target/debug
目录中不会生成库。
这是我的项目结构:
src/lib.rs
pub mod Math;
src/Math.rs
pub struct Arithmetic {
x: i32,
y: i32,
}
impl Arithmetic {
pub fn new(&mut self, x: i32, y: i32) {
self.x = x;
self.y = y;
}
pub fn add() -> i32 {
2 + 3
}
pub fn sub() -> i32 {
2 - 3
}
pub fn mul() -> i32 {
2 * 3
}
pub fn div() -> i32 {
2 / 3
}
}
货运.toml
[package]
name = "Test_Lib"
version = "0.1.0"
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
我究竟做错了什么?
解决方案
您的项目结构看起来不错,应该构建为 Rust 库。
但是你不应该关心是否.rlib
被构建,因为除了 Cargo 的私人用途之外,该文件本身没有任何用处。
如果您试图使库在内部 Rust/Cargo 使用(例如.dll
/.lib
或.so
/ .a
)之外可用,那么您将必须使用C ABI或C++ ABI并设置crate-type
为staticlib
or cdylib
。
如果你想在其他 Rust 项目中使用这个库,那么甚至不要查看target
目录。Rust 库不是一个接一个地手动构建的。Cargo 一口气构建了整个依赖树。在 crates.io 或git 存储库上发布您的 crate,或通过path将其添加到另一个项目。
推荐阅读
- android - 无法构建发布 Flutter APK
- html - 如何使用 Swiper.js 在容器内显示幻灯片(至少最后一张幻灯片)
- fastapi - Tortoise 和 Fastapi 获取相关资源
- flutter - 如何在扫描条码时显示进度指示器
- python - pygame.sprite.LayeredUpdates.move_to_front() 不起作用
- javascript - 导入前过滤谷歌表格导入数据
- javascript - JSX 不接受三元语句(意外标记“?”)
- r - R从括号内的字符串中提取多个数字正则表达式
- sql - 我可以从 Terraform 脚本填充数据库吗(对于 GCP)
- google-kubernetes-engine - 带有自定义 SSL 证书的 Traefik 2.3 将不起作用