如何使用`rustc`箱子?

时间:2018-01-21 23:56:06

标签: rust

我试图在我的程序中使用prod-app-stateful-set crate。

rustc

我还在#[macro_use] extern crate rustc; extern crate rustc_typeck; extern crate syntax; extern crate syntax_pos; use rustc::hir; fn main() { println!("Hello, world!"); } 文件中添加了额外的依赖项。

Cargo.toml

[dependencies] log = "0.4.1" 会发出一堆私密和夜间错误。

cargo run

似乎货物需要来自error: use of unstable library feature 'rustc_private': this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via `Cargo.toml` instead? (see issue #27812) --> src/main.rs:2:1 | 2 | extern crate rustc; | ^^^^^^^^^^^^^^^^^^^ 的稳定箱子,但我不知道应该使用哪个箱子。 crates.io上没有名为rustc的箱子。

这是我的Rust安装版本。

  • rustc 1.23.0(766bd11c8 2018-01-01)
  • 货物0.24.0(45043115c 2017-12-05)

我使用crates.io安装了它。

如何将rustup crate用于我的程序?

更新

我已将rustc添加到rustc = "1.23.0",但它仍无法处理此错误。

Cargo.toml

2 个答案:

答案 0 :(得分:7)

rustc确实没有在crates.io上发布。

由于rustc包的API不稳定,您必须切换到夜间编译器并通过在包根(main.rs或{{1}的开头添加此行来选择加入}):

lib.rs

当然,由于API不稳定,每次更新夜间编译器时,事情可能会在没有警告的情况下中断!

答案 1 :(得分:0)

方法一:使用rustc-dev组件

<块引用>

rustup 组件添加 rustc-dev

然后你可以使用

#![feature(rustc_private)]
extern crate rustc_ast;

方法二:使用 rustc-ap-rustc_* crates

根据rustc-auto-publish repo

crate rustc-ap-rustc_ast 与 rust 源代码中的 rustc_ast 相同

racer, rust-analyzer 使用 rustc-ap-rustc_* crates

这是来自 Racer 的 Cargo.toml 的一些代码:

[dependencies.rustc_errors]
package = "rustc-ap-rustc_errors"
version = "712.0.0"

[dependencies.rustc_parse]
package = "rustc-ap-rustc_parse"
version = "712.0.0"

[dependencies.rustc_session]
package = "rustc-ap-rustc_session"
version = "712.0.0"