【Rust を学ぶ】GUIプログラムを動かしてみる

今回は、RustでGUIなプログラムを動かしてみます。

動かす、と言っても作るわけではなく、既にWebにあるサンプルコードを使ってみることにします。

Rust は GUI を動かすパッケージ(クレート?)として tetra というものがあるみたいです。

tetra.seventeencups.net

このページの右上のGitHubと書かれたボタンから、tetraさんが公開している github ページ(下記)に飛べる で、そこのリポジトリをクローンかローカルにダウンロードします。

github.com

このプロジェクトフォルダには色々なサンプルが入っているそうで、cargo run --example ****(**** には指定のファイル名)を入れるとサンプルコードを実行することができるようです。

早速cmd等からディレクトリをこのフォルダに移動し、cargo run --example hello_worldをしてみると。。。

error: linking with `link.exe` failed: exit code: 1181

~長い文字列が出てきたので省力~

error: aborting due to previous error

error: could not compile `tetra`

と出てきてビルドできませんでした。

先ほど上に載せた公式のページを読んでみると Doc の Installation に、SDL なるものが必要と書いてあります。(LinuxだとALSAというものも必要のようです)

tetra.seventeencups.net

なので、このページで紹介されているSDLのサイトにいってSDLをダウンロードします。

www.libsdl.org

ダウンロードするのは、Development Libraries: の項目にあるもの。Windows用は2種類あってどちらを選べばいいかよく分からないので(笑)とりあえずSDL2-devel-2.0.14-VC.zip (Visual C++ 32/64-bit)をダウンロードしてみます。

クリックすると、zipファイルでダウンロードされるので、解凍してフォルダをまで移動すると、そのフォルダにSDL2.libSDL2.dllがあるかと思います。

このフォルダを先ほど tetra のgithub から持ってきたプロジェクトフォルダの中(Cargo.tomlがあるフォルダと同じ所)に置き、再度cargo run --exampleSDL2-2.0.x/lib/x64hello_worldをしてみると。。。

無事実行でき、青い背景のウインドウが出てきました!

まだサンプルが実行できたというだけですが、これを元に色々開発が進められそうです

※補足

SDL をダウンロードする所で、SDL2-devel-2.0.14-mingw.tar.gz (MinGW 32/64-bit)の方もダウンロードしてみましたが、こちらは公式ページにあるようなフォルダ構成になっておらず、SDL2-2.0.x/lib/x64なんて無いわけですが、どうすれば良いんだろ?