Как получить разрешение зависимости, аналогичное Cargo, в существующем проекте, где для анализа кода используется только rustc?

Книга Rust упоминает, что макросы могут быть расширены с помощью команды rustc --pretty expanded, Я хотел бы использовать это для тестирования некоторых макросов, которые я написал в ящике, путем расширения файла примера командой

rustc -Z unstable-options --pretty expanded examples/macro_test.rs

macro_test.rs будет иметь код, который выглядит так:

#[macro_use] extern crate macro_crate;

use macro_crate::macros::*;

macro_foo! { foo }

fn main() {}

Однако это приводит к ошибке 0463, которая заключается в том, что rustc ничего не знает о среде ящика:

error[E0463]: can't find crate for `macro_crate`
 --> examples/macro_test.rs:1:1
  |
1 | extern crate macro_test;
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate

Какой рекомендуемый способ работы с этим? cargo Насколько я могу судить, помощь не имеет ничего общего.

1 ответ

Решение

Груз имеет rustc подкоманда для вызова rustc с дополнительными аргументами.

$ cargo rustc --example macro_test -- -Z unstable-options --pretty expanded

Вы также можете добавить --verbose перед -- чтобы получить груз распечатать полный rustc командная строка (между прочим).

Другие вопросы по тегам