Чтобы добавить мультимедийную библиотеку SDL2 в проект на Rust, нужно скачать "ящик" (crate). Так называются внешние пакеты. А заведует этими ящиками программа Cargo ("груз").
- Предыдущая часть: Полируем ржавчину: Язык программирования Rust
Она уже есть в поставке Rust, но чтобы она правильно работала, нужно создать проект с определенной структурой, чего я ранее не сделал.
Нормально проект создаётся вот так:
cargo new myproject
Это создаст папку myproject, а в ней структуру каталогов, git-репозиторий и файл настроек Cargo.toml:
Так как я в своем проекте rust_apple этого не делал, то просто перенесу файл main.rs в каталог src, а файл Cargo.toml создам руками. А git-репозиторий мне пока не нужен.
Теперь подключаю к проекту зависимость SDL2. Для этого нужно отредактировать файл Cargo.toml, а именно секцию [dependencies]:
Вся необходимая информация была получена отсюда. Далее можно запустить сборку:
cargo build
Cargo скачает всё необходимое и через некоторое время программа будет готова:
Файл rust_apple.exe будет лежать в каталоге target/debug по умолчанию, и кроме того, Cargo создаст еще кучу служебных файлов и каталогов.
Также нужно отметить, что в корне проекта появился файл Cargo.lock. В нём перечислены все зависимости проекта и их конкретные версии. Это нужно для того, чтобы проект можно было собрать в любое другое время и он работал бы точно так же.
Что ж, теперь надо проверить, что получилось. Редактирую файл main.rs, чтобы добавить в него работу с графикой. Я просто помещу в него код отсюда: https://docs.rs/sdl2/0.34.5/sdl2/
При попытке скомпилировать проект возникла куча ошибок, что не найдено то и это, в общем, обычная ситуация, когда ничего не работает с первого раза.
Пытался устранить ошибки разными способами, но ничего не вышло. В конце концов я удалил и переустановил MinGW, использовав MinGW Builds, и также отдельно переустановил SDL2-devel. Добавил в переменные окружения параметр, указывающий на библиотечную папку SDL2:
set LIBRARY_PATH=C:\usr\dev\SDL2-2.0.16\x86_64-w64-mingw32\lib\
И наконец компиляция сработала как надо.
Программа запускается, рисует графическое окно, в котором плавно меняется цвет фона. Дополнительное замечание: чтобы она работала, необходимо положить файл SDL2.dll в тот же каталог (или в любой каталог, присутствующий в переменной среды PATH).
Размеры программы теперь не 4, а целых 6 мегабайт, правда это дебаг-версия, так что возможно поэтому она распухла. Что касается исходного кода, в нём сразу же можно увидеть много непонятных слов, но теперь можно начать спокойно разбираться в этом и писать игру Apple.
Читайте дальше: Где у него классы?