是否可以指定Cargo项目需要最小的rustc版本,例如,1.1.0才能编译?
答案 0 :(得分:6)
您可以使用build script这样的
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);
}
}
这使用rustc_version包。
答案 1 :(得分:4)
我在Github上找到了一些旧提案:
https://github.com/rust-lang/cargo/issues/837
https://github.com/rust-lang/cargo/issues/1044
https://github.com/rust-lang/cargo/issues/1214
他们被关闭了
我认为现在这张票没有太大的可操作性,我同意我们肯定想重新评估1.0后,但是现在我认为货物不会进入支持业务各种Rust版本,因为它现在太不稳定而无法跟踪。
所以似乎还没有办法。也许你应该在那里举起你的案子。
答案 2 :(得分:3)
如果您的项目需要最低 rustc 版本 1.1.0 来编译,您可以简单地在与 Cargo.toml 相同的目录中创建一个名为 rust-toolchain 的文件(没有任何文件扩展名)文件,并在其中添加以下内容:
[toolchain]
channel = "1.1.0"
components = ["rust-src"]
然后当您运行 cargo build
时,它会自动下载并安装该版本并切换到该版本。有关详细信息,请参阅此 Rust Blog post。
这个 Rust RFC #2495 提出了一种未来的替代方法,我们可以将行 rust = "1.1.0"
添加到 Cargo.toml 文件中。
答案 3 :(得分:2)
答案 4 :(得分:0)
如果您使用Travis,则可以配置Rust的哪个版本以及您支持的通道。这是记录它的常用方法。