Найти тему
ZDG

Язык программирования Rust: поддержка SDL2

Чтобы добавить мультимедийную библиотеку SDL2 в проект на Rust, нужно скачать "ящик" (crate). Так называются внешние пакеты. А заведует этими ящиками программа Cargo ("груз").

Она уже есть в поставке Rust, но чтобы она правильно работала, нужно создать проект с определенной структурой, чего я ранее не сделал.

Нормально проект создаётся вот так:

cargo new myproject

Это создаст папку myproject, а в ней структуру каталогов, git-репозиторий и файл настроек Cargo.toml:

Так как я в своем проекте rust_apple этого не делал, то просто перенесу файл main.rs в каталог src, а файл Cargo.toml создам руками. А git-репозиторий мне пока не нужен.

Теперь подключаю к проекту зависимость SDL2. Для этого нужно отредактировать файл Cargo.toml, а именно секцию [dependencies]:

-2

Вся необходимая информация была получена отсюда. Далее можно запустить сборку:

cargo build

Cargo скачает всё необходимое и через некоторое время программа будет готова:

-3

Файл 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\

И наконец компиляция сработала как надо.

-4

Программа запускается, рисует графическое окно, в котором плавно меняется цвет фона. Дополнительное замечание: чтобы она работала, необходимо положить файл SDL2.dll в тот же каталог (или в любой каталог, присутствующий в переменной среды PATH).

-5

Размеры программы теперь не 4, а целых 6 мегабайт, правда это дебаг-версия, так что возможно поэтому она распухла. Что касается исходного кода, в нём сразу же можно увидеть много непонятных слов, но теперь можно начать спокойно разбираться в этом и писать игру Apple.

Читайте дальше: Где у него классы?