Я пытаюсь сделать замену компилятора .Вот мой исходный код.
#![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)
Вот полный пример исходного кода .