Неразрешенный импорт при импорте из локальной корзины с файлом main.rs - PullRequest
0 голосов
/ 23 октября 2019

Я включил библиотеку как субмодуль в мою программу. Структура выглядит следующим образом:

.
├── my_lib/
     ├── Cargo.toml
     └── src/
          ├── lib/
               ├── mod.rs
               └── foo.rs
          └── main.rs
├── src/
     └── main.rs
└── Cargo.toml

В файле моей программы Cargo.toml я добавил зависимость после этого answer :

[dependencies]
my_lib = { path = "./my_lib" }

Однако яЯ не могу использовать эту библиотеку внутри моей программы, я немного новичок в Rust, и эта система импорта очень меня смущает. Я пробовал это в main.rs:

use my_lib::foo;

Но я получаю unresolved import 'my_lib' ошибку.

1 Ответ

0 голосов
/ 23 октября 2019

Ящик может быть или библиотекой или исполняемым файлом, но не обоими. Ваш my_lib содержит файл main.rs , что означает, что Cargo будет рассматривать его как исполняемый файл. Вы не можете импортировать из исполняемого файла.

Вам нужно будет реструктурировать свой код. Возможно, вы действительно хотели, чтобы my_lib была библиотекой, и в этом случае она должна иметь lib.rs верхнего уровня. Вы, вероятно, хотите:

  • удалить my_lib / src / main.rs
  • move my_lib / src / lib / mod.rs в my_lib / src / lib.rs
  • переместить my_lib / src / lib / foo.rs в my_lib / src / foo.rs

См. Также:

...