问题标签 [rust-cargo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7824 浏览

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

我正在使用cargo build --release在发布配置中构建我的项目并cargo test构建和运行我的测试。

但是,我还想在发布模式下构建我的测试;这可以使用货物来完成吗?

0 投票
3 回答
2686 浏览

windows - 如何根据操作系统系列具有不同的依赖关系

我正在编写一个跨平台库,它具有特定于平台的依赖项,一个用于类 unix 平台,一个用于 Windows。这些板条箱只能在特定平台上编译,因此我不能正常地将它们全部添加到依赖项下。

在实际的 rust 代码中,我使用cfg属性,例如#[cfg(unix)]为某些平台编译某些代码,并且我想在 Cargo.toml 或构建脚本中为依赖项做类似的事情。目前,我正在使用这样的目标三元组:

然而,这份清单远非详尽无遗。我不关心架构或 ABI,只关心操作系统系列,因此,如果我要匹配每个类似 unix 的目标三元组,那么列表会变得很长。

有没有办法使用特定的依赖项,仅由运行平台货物的操作系统系列决定?就像是:

0 投票
1 回答
10341 浏览

rust - 如何定义仅测试依赖项?

我有一个实现 lint 插件的 Rust 库。我想包括compiletest,但在测试之外不需要它。指定依赖项仅用于测试的正确方法是什么?

0 投票
1 回答
437 浏览

rust - 无法构建 Hyper - 箱子名称中的无效字符 `-`

我正在尝试运行 Github 自述文件中列出的超级示例。

Cargo.toml 看起来像这样:

但是,当我尝试使用 Cargo run 构建它时,出现以下错误:

我查看了这些不同的 crate,想看看是否可以将“rustc-serialize”更改为“rustc_serialize”,因为我认为 crate 名称不能再有连字符。但是,我找不到任何类似的东西。我真的很想能够解决这个问题,因为我有一种感觉,在 Rust 仍在打磨的时候,我会再遇到几次这个错误。

编辑:版本如下:Rust:1.0.0-beta.2 Hyper:0.3.14 Cargo:0.0.1-pre-nightly(建于 2015-03-09)

0 投票
3 回答
2949 浏览

rust - 如何在不运行的情况下构建 Rust 示例

有没有办法在不运行它们的情况下构建 Rust 示例?专门用于测试使用 Travis CI 成功构建的示例。

0 投票
1 回答
7351 浏览

testing - 如何找到使用 Cargo 进行测试的资源?

我在一个与文件交互的项目中,我想使用文本文件来测试我的工作。但是测试不是从tests/目录运行的,因此在运行时我无法可靠地找到它们cargo run

Cargo 是否通过始终从根目录运行测试来处理这个问题(似乎是这种情况,但我没有找到任何证明它的东西)?

0 投票
2 回答
163 浏览

rust - Cargo.toml 可以让 Cargo 告诉 rustc 包含插件吗?

假设我想用 rust-clippy 对我的所有代码进行 lint。现在,我将不得不写

在我的每个来源中。我可以以某种方式将 Cargo 配置为让 rustc 使用该插件而无需将其添加到我的源文件中吗?如果是这样,怎么做?

0 投票
1 回答
2485 浏览

rust - 无法编译“http”包

我正在尝试 Rust 并尝试按照这个示例执行一个简单的 HTTP GET 请求。首先,我运行cargo new request_learn --bin,然后将示例代码粘贴到main.rs然后运行cargo build

我在这里更改了fail!宏,因为我似乎没有它。下一个版本说

所以我添加到Cargo.toml

我再次建造

我剪掉了一些错误信息,因为它很长而且重复

我错过了什么吗?我正在查看 Rust 模块和cargo文档,但我似乎迷路了。

0 投票
2 回答
2755 浏览

ssl - 用货物构建箱子时 SSL 证书无效

在定义依赖项()之后尝试教程中的示例(猜测游戏)时,rand="0.3.0"我得到了这个:

将此添加到货物注册表 git repo,但没有成功:

在哪里挖?

0 投票
1 回答
4796 浏览

rust - 如何构建具有相同配置选项的二进制文件和库?

在询问时,如果您在同一个货物项目中有一个 bin 和一个 lib,并且想使用特定的 rustc cfg 选项构建 bin 和 lib,那么它不起作用。

您可以使用 rustc cfg 选项构建一个或另一个,但不能同时构建两者。如果您尝试构建 lib,那么当 bin 被编译时,bin 会在没有 rustc 选项的情况下重新编译 lib。

有没有办法做到这两点,如果没有,为什么?无论如何,我注定要创建自己的构建脚本吗?如果是这样,拥有货物有什么意义?

编辑

好吧,也许我有点戏剧化

背景/扩展

说我有类似的东西:

src/lib.rs

src/main.rs

因此,如果我使用 dosomething 的 cfg 选项进行编译,我将获得一个函数版本,但如果我没有配置,我将获得“默认”行为或其他任何内容。

现在,如果我尝试使用 cargo rustc 进行编译,我将永远无法获得在 lib 中设置了 cfg dosomething 的 bin 版本。

我最接近能够在货物中做到这一切的是:

第一个命令将使用 cfg 编译 lib,但第二个命令将在没有 cfg 的情况下重新编译lib 以创建 bin。

我想出的唯一解决方法是:

复制它为命令编译而吐出的内容,例如:

然后运行:

最后复制并粘贴之前的 rustc 命令,以便使用设置了 cfg 选项的 lib 编译 bin。

这是唯一的方法吗?为什么我不能以某种方式指定哪些库/箱获得我想要的 rustc cfg 选项,即使它在 Cargo.toml 中?还是我自己都没有意识到?

对于那些问...

货物.toml:

PS 感谢所有从事 rust 和 cargo 工作的人,总而言之,我觉得这是一个愉快的工作环境,并且喜欢这种语言。保持良好的工作。