Rust: с нуля до своего органайзера Урок 6 из 60
Первый проект Cargo
Урок 6. Различить проверку, сборку и запуск.
Предварительно: уроки 1–5.
Зачем это нужно
Cargo похож на организатора мастерской: знает, где исходники и как запустить инструменты. Проект — файлы одной разработки. Пакет Cargo описан файлом Cargo.toml и может содержать одну или несколько собираемых частей. Пока у нас одна программа.
Сразу целиком
В терминале перейдите в rust-learning из урока 4. Команда cargo new создаёт новую папку; organizer — имя проекта. –edition выбирает редакцию правил Rust, а –vcs none отключает создание истории Git, чтобы не усложнять первый проект. Выполните:
Перед командами: cargo new organizer создаст папку проекта с именем organizer; --edition 2024 выбирает редакцию правил языка, --vcs none отключает создание истории Git. cd organizer войдёт в папку. cargo check проверит код без готового исполняемого файла, cargo build создаст файл, cargo run при необходимости соберёт и запустит его. Представьте мастерскую: проверить чертёж, изготовить вещь и использовать её — разные действия.
cargo new organizer --edition 2024 --vcs none
cd organizer
cargo check
cargo build
cargo run
check проверяет код, но не создаёт готовую программу. build собирает её, но не запускает. run при необходимости пересобирает и запускает. Новая программа печатает Hello, world! («Привет, мир!»). Строки Compiling и Finished — отчёт Cargo, а не вывод нашей программы.
Где находится программа
Откройте папку organizer через меню «Открыть папку» редактора. Не создавайте внутри неё ещё один organizer. В src/main.rs находится:
Прежде чем открыть созданный файл, прочитайте короткий ключ к шаблону Cargo. fn main() называет место начала программы: fn объявляет функцию, пустые () означают отсутствие входных данных. Фигурные скобки ограничивают её действия. println! выводит строку, двойные кавычки ограничивают текст, ; завершает действие. Пока это готовый шаблон; в уроке 7 разберём каждый знак подробнее.
fn main() {
println!("Hello, world!");
}
Вывод программы:
Hello, world!
Сейчас это предоставленная Cargo проба установки. В следующем уроке разберём каждый знак; самостоятельное написание пока не требуется.
Cargo.toml — паспорт проекта в формате TOML: текстовые настройки из разделов и полей. name — имя пакета, version — версия нашей программы, edition — редакция языка. Раздел dependencies предназначен для зависимостей, библиотек, которые использует проект. Образ — готовые детали; сейчас сторонних деталей нет. Cargo.lock фиксирует выбранные версии зависимостей; его ведёт Cargo. Это не второй файл настроек для ручного редактирования.
Версия Rust 1.97.0 и edition 2024 — разные вещи: выпуск инструментов и редакция правил. Папка target содержит результаты сборки, её файлы не редактируем. Debug означает сборку для разработки; оптимизированную release-сборку изучим перед выпуском.
После cargo build можно запустить готовый файл напрямую. Начальные ./ в macOS/Linux и .\ в PowerShell означают «от текущей папки»; / и \ разделяют части пути в соответствующих системах. Это путь к уже собранному файлу, поэтому изменение main.rs само его не обновит. На Windows PowerShell:
.\target\debug\organizer.exe
На macOS/Linux:
./target/debug/organizer
Начальное ./ или .\ указывает путь от текущей папки. Прямой запуск не компилирует изменения. Поэтому после изменения кода сначала build или просто run. Команды здесь выполняются из organizer, где находится Cargo.toml.
Если не получилось
could not find Cargo.toml означает, что вы, вероятно, не в папке проекта. destination already exists — папка уже есть: сначала посмотрите её содержимое; не удаляйте свою работу ради повторения инструкции. Ошибка linker возвращает к системным инструментам урока 5.
Опорная карта
new → создать; check → проверить; build → собрать; run → собрать при необходимости и запустить. Код в src, настройки в Cargo.toml, результат в target.
Разминка
- Предскажите: обновится ли готовый файл после одного сохранения текста?
- Заполните: команда ___ проверяет без создания исполняемого файла.
- Почините запуск Cargo из папки выше проекта, перейдя через cd organizer.
Задание
Обязательное. Замените только текст Hello, world! между двойными кавычками на «Органайзер готов к работе». Сохраните main.rs, выполните cargo run. Ожидается ровно эта строка в выводе программы. Затем соберите и запустите готовый файл командой своей ОС.
На своих данных. Измените приветствие, сохраняя кавычки.
Подсказка и эталон
Если старый текст остался, проверьте сохранение и текущую папку. Эталон ниже — полный main.rs; прочитайте его после своей попытки. Не запускайте файл .rs как команду оболочки.
Готовы дальше, если оба способа запуска работают. Теперь проверена не только установка команд, но и сборка.
Сверка после самостоятельной попытки
Готовый файл не обновится от сохранения текста; check не создаёт исполняемый файл; для Cargo нужна папка с Cargo.toml.
fn main() {
println!("Органайзер готов к работе");
}
Ожидаемый вывод эталона:
Органайзер готов к работе
Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом
Комментарии (0)
Войдите, чтобы оставить комментарий →
Пока нет комментариев. Будьте первым.