Почему при компиляции с ржавчиной c я получаю сообщение «не могу найти ящик», которое указано в Car go .toml как зависимость? - PullRequest
1 голос
/ 04 марта 2020

My Car go .toml включает это:

[dependencies]
chrono = "0.4"

И мой код включает это:

extern crate chrono;
use chrono::{Duration, DateTime, Utc};

, но когда я запускаю свой код, я получаю эту ошибку:

error[E0463]: can't find crate for `chrono`
 --> src/lib.rs:1:1
  |
1 | extern crate chrono;
  | ^^^^^^^^^^^^^^^^^^^^ can't find crate

Я работаю над упражнением Exercism, поэтому для сборки / запуска программы используется rustc src/lib.rs для проверки моего решения. Проблема в том, что я не запускаю rustc src/main.rs?

1 Ответ

5 голосов
/ 04 марта 2020

Когда вы напрямую запускаете rustc, все, что знает компилятор, это аргументы командной строки. В частности, он ничего не знает о Cargo.toml, и поэтому не знает, где искать библиотеку chrono.

Чтобы использовать управление зависимостями, вы должны скомпилировать свой проект с Car go - просто используйте cargo build / cargo run / cargo test, и все должно быть в порядке. Подробности смотрите в Книге .

Если, однако, вы (по какой-то причине) хотите использовать rustc напрямую, я бы посоветовал сначала проверить cargo, используя cargo build --verbose. Он покажет все вызванные команды, что позволит вам проверить возможные аргументы, которые будут определены вручную.

...