Я пытаюсь выполнить замену встроенного компилятора. Вот мой исходный код.
#![feature(rustc_private)]
#![feature(link_args)]
extern crate rustc_driver;
fn main() {
rustc_driver::set_sigpipe_handler();
rustc_driver::main();
}
На самом деле это точная копия rustc
исходного кода. Я построил, установил и экспортировал этот инструмент, используя переменную среды.
cargo install
export RUSTC=tool1 # `tool1` is name of binary
И я попробовал построить другой проект example1
. Вот исходный код example1
.
fn main() {}
Сборка завершилась ошибкой.
error[E0463]: can't find crate for `std`
error: aborting due to previous error
For more information about this error, try `rustc --explain E0463`.
error: Could not compile `foo2`.
To learn more, run the command again with --verbose.
Я подтвердил, что example1
хорошо собран с нормальным cargo
. Ломается только с tool1
. (export RUSTC=tool1
) Если я unset RUSTC
, снова работает.
Кажется, я совершил какую-то ошибку, но не могу понять, в чем именно. Как заставить его работать?
Вот моя информация об инструменте.
rustc -V
rustc 1.28.0-nightly (a1d4a9503 2018-05-20)
cargo -V
cargo 1.28.0-nightly (f352115d5 2018-05-15)