指定Cargo项目所需的rustc版本

tel*_*ium 9 rust rust-cargo

是否可以指定Cargo项目需要最小的rustc版本,例如,1.1.0才能编译?

Sta*_*eur 17

在 Rust 1.56.0 中你可以使用rust-version

rust-version 字段是一个可选键,它告诉 Cargo 可以使用哪个版本的 Rust 语言和编译器来编译您的包。如果当前选择的 Rust 编译器版本比指定版本旧,cargo 将退出并显示错误,告诉用户需要什么版本。

[package]
rust-version = "1.56"
Run Code Online (Sandbox Code Playgroud)


mal*_*rbo 6

你可以使用一个构建脚本这样

extern crate rustc_version;

use std::io::{self, Write};
use std::process::exit;       
use rustc_version::version_matches;   

fn main() {
    if !version_matches(">= 1.1.0") {
        writeln!(&mut io::stderr(), "This crate requires rustc >= 1.1.0.").unwrap();
        exit(1);
    }   
}
Run Code Online (Sandbox Code Playgroud)

这使用了rustc_version板条箱.


Luk*_*oen 5

如果您的项目需要 rustc 最低 1.1.0 版本来编译,您可以简单地在 Cargo.toml 文件所在的目录中创建一个名为rust-toolchain的文件(没有任何文件扩展名),并在其中添加以下内容:

[toolchain]
channel = "1.1.0"
components = ["rust-src"]
Run Code Online (Sandbox Code Playgroud)

然后,当您运行cargo build它时,它会自动下载并安装该版本并切换到它。有关更多详细信息,请参阅此Rust 博客文章

这个Rust RFC #2495提出了一种未来的替代方法,我们可以将行添加rust = "1.1.0"到 Cargo.toml 文件中。