rust-cargo 相关问题

Cargo是Rust编程语言的官方包管理器。

货物安装:/usr/bin/ld:找不到-lxcb

在Ubuntu22.04中,似乎缺少库。 我该如何解决呢? ld信息是这样的: ld:模式 elf_x86_64 尝试打开 /usr/local/lib/x86_64-linux-gnu/libxcb.so 失败 一个...

回答 1 投票 0

如何从单独的货物工作区 github 存储库导出特征

我对 Rust 相当陌生,正在尝试了解如何最好地创建可重用的共享库组件。我有一个名为 rust-libs 的 github 存储库,它被设置为货物工作区。该项目...

回答 1 投票 0

如何在 docker 中使用 --config 命令来实现 rust

我在 Rust API 上使用 --config 文件运行开发,是这样的 Cargo run --config dev-config.toml 其中 dev-config.toml 就像我的环境 像这样 [环境] APP_ENV = "

回答 1 投票 0

如何让cargo使用另一个路径来编译而不是/tmp(设备上没有剩余空间(操作系统错误28))

我使用的是 Debian 11,带有 LUKS 加密 SSD,我的 /tmp、/var 和 /home 文件夹位于不同的分区中(我不知道为什么在安装时这样做) 我尝试使用 Cargo 安装 deno,它...

回答 1 投票 0

我怎么搞乱了这些模块?

我正在尝试创建一个包含库和一个或多个二进制文件的板条箱。我查看了包含库和二进制文件的包?以及关于板条箱和模块的 Rust 书籍部分,但仍在运行

回答 1 投票 0

有什么方法可以将数据文件包含在 Rust 库中吗?

我正在尝试创建一个库,我想在其中包含一些二进制(或文本)文件,这些文件将包含在运行时解析的数据。我的目的是控制这些文件,更新...

回答 2 投票 0

如何在 Rust 中使用外部板条箱?

我正在尝试使用 rust-http 库,我想使用它作为一个小项目的基础。 我不知道如何使用无法通过 rustpkg install 安装的东西 我正在尝试使用 rust-http 库,并且我想将其用作小项目的基础。 我不知道如何使用无法通过rustpkg install <remote_url>安装的东西。事实上,我今天发现 rustpkg 现已被弃用。 如果我git clone库并运行适当的make命令来构建它,我如何在其他地方使用它? IE。我该如何实际使用extern crate http? 自 Rust 1.0 以来,99% 的用户将使用 Cargo 来管理项目的依赖项。该文档的 TL;DR 是: 使用 cargo new 创建项目 编辑生成的Cargo.toml文件以添加依赖项: [dependencies] old-http = "0.1.0-pre" 在代码中访问板条箱: Rust 2021 和 2018 use old_http::SomeType; 生锈 2015 extern crate old_http; use old_http::SomeType; 使用 cargo build 构建项目 Cargo 将负责管理版本,在需要时构建依赖项,并将正确的参数传递给编译器以将所有依赖项链接在一起。 阅读 Rust 编程语言,了解有关 Cargo 入门的更多详细信息。 Cargo 书中的指定依赖项详细介绍了您可以添加哪些类型的依赖项。 更新 对于现代 Rust,请参阅 this 答案。 原答案 您需要将 -L 标志传递给 rustc 以将包含已编译的 http 库的目录添加到搜索路径。像 rustc -L path-to-cloned-rust-http-repo/build your-source-file.rs 这样的事情应该可以。 教程参考 与您的帖子无关,但与您的标题相关。另外,以货物为基础。 最佳实践: 外部板条箱名为 foo use ::foo; 模块(属于代码/板条箱的一部分)名为 foo use crate::foo; 在这两种情况下,您都可以使用 use foo; 代替,但这可能会导致混乱。 构建完成后,您可以在代码中使用普通的 extern crate http;。唯一的技巧是您需要将适当的 -L 标志传递给 rustc 来告诉它在哪里可以找到 libhttp。 如果您的项目中的 rust-http 目录中有一个子模块,并且它构建到其根目录中(我实际上不知道 make 中的 rust-http 存放生成的库),那么您可以构建自己的子模块使用 rustc -L rust-http pkg.rs 进行项目。使用该 -L 标志,extern crate http; 中的 pkg.rs 行将能够在 libhttp 子文件夹中找到 rust-http。 我遇到了类似的问题。我最终在我的 Cargo.toml 中这样做了 [dependencies] shell = { git = "https://github.com/google/rust-shell" } 然后在我的 main.rs 中我可以添加它并成功编译。 请注意,在我的例子中,这个货物包是一个宏。通常你不希望在外部调用之前有#[macro_use]。 #[macro_use] extern crate shell;

回答 5 投票 0

有没有办法为 Cargo 包指定自定义 main.rs/lib.rs 文件?

我想使用 foo.rs/bar.rs 而不是默认的 main.rs/lib.rs 包根文件。 我该如何配置?

回答 1 投票 0

Rust 中调用 cdylib crate 函数返回的函数时出现段错误

如果我在 cdylib 箱中有一个 fn(&mut Box),并且它将 Box 的值设置为箱中定义的另一个函数,则在调用结果函数时会出现分段错误。 我

回答 1 投票 0

错误:找不到链接器 `x86_64-w64-mingw32-gcc`

我正在使用 MacOS Big Sur,我正在尝试交叉编译到 Windows,但问题是,这个“错误:链接器 x86_64-w64-mingw32-gcc 未找到”阻止我这样做,这是我的 c ...

回答 3 投票 0

我希望 Rust 在编译时处理这个字符串。我该怎么办?

我使用 include_str!() 从文件中导入 str,我想将其传递到 proc_marco,bug 它不起作用。我从 rustc 收到错误预期字符串文字。 这是我的代码: 宏规则! ptcl_l...

回答 1 投票 0

如何在 Rust 中创建泛型函数向量

fn render_task_enter_field(标准输出:&mut W) 在哪里 宽:写, { ... } 我需要将此函数添加到向量中。我将迭代它并调用每个函数。 我尝试过Vec fn render_task_enter_field<W>(stdout: &mut W) where W: Write, { ... } 我需要将此函数添加到向量中。我将迭代它并调用每个函数。 我已经尝试过Vec<fn(&mut impl Write)>,但不起作用 你想要这个: Vec<Box<dyn Fn(&dyn Write)->()>> 包含动态类型函数的框向量,该函数采用实现写入的动态对象。 您无法将泛型函数添加到数组中,因为它实际上只是一大堆单独的函数,但您可以让它采用特征对象作为参数来获得相同的效果。 完整示例: use std::io::Write; fn render_task_enter_field(stdout: &dyn Write) { } fn main() { let mut k:Vec<Box<dyn Fn(&dyn Write)->()>> = vec![]; k.push(Box::new(render_task_enter_field)); }

回答 1 投票 0

是否可以使用货物进行逐步构建?

我有一个多工作空间货运项目: 命令行/ 服务器/ 测试/ Cargo.toml 在父 Cargo.toml 中 [工作空间] 成员=[ “服务器”, “cli”, “测试”, ] 解析器 = ...

回答 1 投票 0

可以使用 Cargo 在发布模式下构建测试吗?

我使用cargo build --release 在发布配置中构建我的项目,并使用cargo test 来构建和运行我的测试。 但是,我还想在发布模式下构建我的测试;我们可以做到吗...

回答 2 投票 0

当某个功能被禁用时,如何从编译中排除某个 crate?

我有一个 Rust 项目,其结构如下: - main_crate(功能=“x”) - driver_crate(功能=“x”) - x_crate ... ... 在我的 main_crate 中,我有一个功能...

回答 1 投票 0

如何让Cargo自动重新编译更改的文件?

我听说 Cargo 能够自动重新编译更改后的源文件,但我很难弄清楚如何告诉它这样做。 目前,我正在手动运行 Cargo build 或 c...

回答 8 投票 0

为什么在 Rust 中解引用字符串(而不是 &String)有效?

在下面的代码中,在calculate_length函数中我们发送的是String而不是&String,但解引用是有效的。我预计会出现错误: String 类型无法取消引用 但是代码

回答 1 投票 0

如何在Github CI工作流程中缓存Cargo包?

我有一个使用 Cargo 包的 GitHub CI。但每次运行 CI 时,大约需要花费时间。 6 分钟即可构建软件包。有没有办法缓存二进制文件,以便在下次运行时,它不会...

回答 1 投票 0

为什么“impl Trait”语法在我创建的函数中不起作用?

我在示例 Rust 项目中创建了一个函数,用于比较实现 PartialOrd 特征的类型的两个值。它没有编译。下面是示例代码: fn 主(){ 让x:i32 = 5; ...

回答 2 投票 0

临时依赖 Rust 的修补版本

我正在尝试修复 Rust/Cargo 中的依赖问题。我有一个依赖项 ctclib-pp,它又依赖于 bindgen 0.59.2。但是,出于兼容性原因,我需要使用 0.60.1 或更高版本...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.