首页 > 解决方案 > 使用 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

解决方案


您的项目结构看起来不错,应该构建为 Rust 库。

但是你不应该关心是否.rlib被构建,因为除了 Cargo 的私人用途之外,该文件本身没有任何用处。

如果您试图使库在内部 Rust/Cargo 使用(例如.dll/.lib.so/ .a)之外可用,那么您将必须使用C ABIC++ ABI并设置crate-typestaticlibor cdylib

如果你想在其他 Rust 项目中使用这个库,那么甚至不要查看target目录。Rust 库不是一个接一个地手动构建的。Cargo 一口气构建了整个依赖树。在 crates.io 或git 存储库上发布您的 crate,或通过path将其添加到另一个项目。


推荐阅读