我可以在没有Cargo.toml的情况下使用货物安装库吗?

Tom*_*cek 14 rust rust-cargo

我正在经历Rust的开始,我需要Cargo.toml在我的系统上获得箱子.我不是做货物包装的东西(例如创造Cargo.toml),因为我对语言感兴趣,而不是包装.

我可以cargo在某种程度上在我的系统上安装库而无需定义Cargo.toml使用Cargo.toml命令吗?

$ cargo install rand
    Updating registry `https://github.com/rust-lang/crates.io-index`
specified package has no binaries
Run Code Online (Sandbox Code Playgroud)

She*_*ter 12

实际答案

不,请使用货物.它非常易于使用,它可以防止您通过管理版本(以及相互冲突的版本)拍摄自己的脚.

因为我对语言感兴趣,而不是包装.

从99.9%的Rust用户的角度来看,Cargo 语言的一部分,或者至少是Rust生态系统的一部分.你可能期望在另一种语言标准库(随机数生成是一个很好的例子)中提供许多东西.

在我的系统上安装库

最终,这没有意义.您可以安装没有One True Version的库.每个使用包的程序都可能使用不同的版本,因为它有不同的需求.更进一步,你可以以不同的方式为不同的项目编译箱-板条箱具有特点的是改变他们是如何被编译.

cargo install rand

这实际上是一种使用Cargo构建整个Rust项目的方法,该项目提供二进制文件并将其安装在您的系统上.这更有意义,因为它是一个单独的实体.不幸的是,出于这个原因,它可能会令人困惑!

技术上正确答案

当然可以 ; 你只需要做一切货物为你做的事.这涉及到

  1. 下载包.
    1. 这也意味着包的任何依赖性.
    2. 和正确的版本.
  2. 编译包.
    1. 和依赖.
    2. 维护依赖关系树并将其传递给每个后续包.
  3. 最后,您可以编译代码.

  • @SummerBreeze是的!当你在发布模式下编译时,它是`target/release`,docs在`target/docs`中.下载的*源代码*放在`$ HOME/.cargo`中,因为它可以在项目之间共享.构建的工件是特定于项目的. (3认同)
  • 我希望更多人对此有所帮助; 非常感谢你! (3认同)