标签: rust-cargo

如何链接本地Rust库?(类似于npm链接)

在节点中开发库时,如果您希望针对仅存在于本地的库进行开发,则npm publish可以使用npm link /path/to/other/node_library.

什么相当于Rust?如何创建另一个链接到bar库的foo可执行文件,而不首先将bar库推送到git远程?

官方生锈教程展示了如何使用raw进行此操作rustc,如何才能完成Cargo.toml

(货物文档向您展示了如何构建lib,但现在如何链接到没有远程存储库的库.)

git node.js rust rust-crates rust-cargo

16
推荐指数
2
解决办法
3711
查看次数

如何让货物自动重新编译已更改的文件?

我听说货物有能力自动重新编译已更改的源文件,但我很难弄清楚如何告诉它这样做.

现在,我手动运行cargo buildcargo run每次要输入检查我的代码.我宁愿简单地保存文件并在邻近的终端窗口中查看结果.

如果你仍然不知道我在说什么,我正在寻找相当于sbt ~compile或等的货物sbt ~run.

这似乎很难找到,所以我开始怀疑它是否真的得到了支持.可能有人说货物可以检测到已更改的文件并重新编译它们的意思是货物可以检测到未更改的文件并避免重新编译它们,例如make.

rust rust-cargo

16
推荐指数
1
解决办法
3116
查看次数

是否有所有cfg功能的列表?

锈有能力在构建检查配置时间,例如,#[cfg(target_os = "linux")]或者 if cfg!(target_os = "linux") {...},在那里target_os是一个功能.

是否有可以在Rust中检查的所有(或至少是常用的)功能的列表?


查看有关属性的 相关问题是否有任何标准属性的详尽列表?.

rust rust-cargo

16
推荐指数
2
解决办法
8173
查看次数

在运行时获取 Cargo.toml 版本

在我的Cargo.toml我有这个块

[package]
name = "packagename"
version = "0.1.0"
authors = ["me <abuse@gmail.com>"]
Run Code Online (Sandbox Code Playgroud)

如何在运行时获取 [package].version 是什么?

rust rust-cargo

16
推荐指数
0
解决办法
8767
查看次数

将 rust 交叉编译到 android 时,如何修复“ld:错误:无法找到库 -lgcc”?

我正在尝试让 Rust 在 Android 上工作。但是,当我尝试交叉编译到 android 时,出现以下链接错误:

$ cargo build --target=arm-linux-androideabi
   Compiling <project> v0.1.0 (<project>)
error: linking with `/opt/android-sdk/ndk/23.0.7599858/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi31-clang` failed: exit status: 1

(very long toolchain command from cargo)

ld: error: unable to find library -lgcc
          clang-12: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

我已经安装了 ndk 并将链接器更改.cargo/config为 android clang 链接器。我还尝试了独立工具链,得到了相同的结果。我使用的指南如下:https://mozilla.github.io/firefox-browser-architecture/experiments/2017-09-21-rust-on-android.html

crate-type = ["rlib"]使用代替时交叉编译确实有效crate-type = ["cdylib"],但我需要一个.so文件而不是.rlib文件。

如果相关的话,我正在使用 Manjaro Linux。

linux android-ndk rust rust-cargo

16
推荐指数
2
解决办法
8256
查看次数

我可以仅为调试配置文件激活依赖项的功能吗?

我刚刚开始研究BevyRust 的游戏引擎。它有一个称为 的功能dynamic,可以启用动态链接,以加快开发过程中的编译时间。但是,建议我们在构建发布时禁用此功能。

有没有办法告诉 Cargodynamic为调试版本启用该功能,但为发布版本禁用该功能?或者我必须在跑步前亲自记住更改bevy = { version = "0.5.0", features = ["dynamic"] }bevy = "0.5.0"in ?Cargo.tomlcargo build --release

rust rust-cargo

16
推荐指数
1
解决办法
3243
查看次数

`cargo doc` 和 `cargo rustdoc` 之间的区别

根据doc.rust-lang.org

\n\n
\n

使用指定的自定义标志构建包的文档

\n
\n\n
\n

构建包的文档

\n
\n

两者有什么区别?据我了解,cargo rustdoc就像cargo doc,但它允许更多 lints\xe2\x80\x94 例如:

\n
#![deny(rustdoc::broken_intra_doc_links)]\n
Run Code Online (Sandbox Code Playgroud)\n

它是否正确?奇怪的是,cargo rustdoc在某些情况下,它也会失败cargo doc。例如

\n
some/folder on some-branch [$!] via  v1.60.0-nightly\n\xe2\x9d\xaf cargo doc\n    Finished dev [unoptimized + debuginfo] target(s) in 0.53s\n\nsome/folder on some-branch [$!] via  v1.60.0-nightly\n\xe2\x9d\xaf cargo rustdoc\nerror: manifest path `some/folder/Cargo.toml` is a virtual manifest, but this command requires running against an actual package …
Run Code Online (Sandbox Code Playgroud)

rust rust-cargo rustdoc

16
推荐指数
1
解决办法
2139
查看次数

如何删除 Cargo.toml 中未使用的依赖项?

如何找出 Cargo.toml 中未使用的依赖项?我怎样才能自动删除它们?

rust rust-cargo

16
推荐指数
1
解决办法
1万
查看次数

如何为 Cargo 中的子依赖项指定功能?

我正在开发一个使用 reqwest 和 self_update 的 CLI 应用程序。self_update 也使用 reqwest。我希望我的应用程序使用 rustls 而不是引入 openssl 依赖项。Cargo.toml 允许选择依赖项的功能:

[dependencies.reqwest]
version = "0.10"
default-features = false
features = ["rustls-tls", "json", "blocking"]
Run Code Online (Sandbox Code Playgroud)

如果子依赖项有效的话那就太酷了:

[dependencies.self_update.reqwest]
version = "0.10"
default-features = false
features = ["rustls-tls", "json", "blocking"]
Run Code Online (Sandbox Code Playgroud)

我还查看了替换部分,但只有这样的东西才适用于我分支代码的地方:

"reqwest:0.10.1" = { branch = "rustls", git = "https://github.com/ctaggart/reqwest" }
Run Code Online (Sandbox Code Playgroud)

但我想要的是默认功能和支持的功能:

"reqwest:0.10.1" = { tag="v0.10.1", git = "https://github.com/seanmonstar/reqwest", default-features = false, features = ["rustls-tls", "json", "blocking"] }
Run Code Online (Sandbox Code Playgroud)

如何使用 Cargo 配置 Reqwest 或 Tokio 或任何其他高度可配置的非直接依赖项的功能?

rust rust-cargo

15
推荐指数
1
解决办法
8490
查看次数

在树莓派 4 上安装 Rust 后无法运行货物

我尝试使用推荐的安装脚本在 Raspberrypi 4 上安装 rust:

pi@raspberrypi:/tmp $ curl https://sh.rustup.rs -sSf | sh
Run Code Online (Sandbox Code Playgroud)

但重启后,cargo找不到:

pi@raspberrypi:~ $ cargo
error: command failed: 'cargo'
error: caused by: No such file or directory (os error 2)
Run Code Online (Sandbox Code Playgroud)

这可能与安装过程中报告的情况有关(error reading rustc version)(完整的安装日志位于底部):

info: default toolchain set to 'stable-aarch64-unknown-linux-gnu'

  stable-aarch64-unknown-linux-gnu installed - (error reading rustc version)
Run Code Online (Sandbox Code Playgroud)

以下是完整的安装日志:

pi@raspberrypi:/tmp $ curl https://sh.rustup.rs -sSf | sh
info: downloading installer

Welcome to Rust!

This will download and install the official compiler for the Rust
programming language, and …
Run Code Online (Sandbox Code Playgroud)

path rust rust-cargo rustup raspberry-pi4

15
推荐指数
1
解决办法
3248
查看次数