2017年10月追記
以下の記事は2014年のものです。
いまは、Rust公式ページにもあるようにrustupを入れれば、
nightlyも安定板も切り替えて使えますし、Cargoもとくに
自分で入れなくても勝手に入ります。
はじめに
最近node-ffiやって、libuvに割りと近づいてきたので、libuvつながりのrustを始めてみた。
いきなりGUIを使いたいんだけど
ffiな機構の存在を知る
画像が出せるようなライブラリを探す
node-webcl(node-webglもあるけどw)で知った。glfwというGLUTに取って代わるかもしれないOpenGLのフレームワーク?があり、rustでもこれを使ったものがあり、今回は、これのexampleを動かすところまで辿りつけた。
実践編
Rust本体はNightlyをtarballで入れた
pkg形式はイマイチよくわかっていないので、何が入っているか
分かった気になるtarballを入れようとは決めていたが、
公式でインストルボタンをクリックするとNightlyを進めてきたので、
0.11ではなく、Nightlyを入れた
tarを展開するだけだとエラー
dylibイマイチわからないです。tarを展開して~/local配下に置いて、
rustc --version
としたら、
dyld: Library not loaded: x86_64-apple-darwin/stage1/lib/rustlib/x86_64-apple-darwin/lib/libnative-4e7c5e5c.dylib
Referenced from: /Users/kjunichi/local/rust-nightly-x86_64-apple-darwin/bin/rustc
Reason: image not found
Trace/BPT trap: 5
Nightlyだから、今回ハズレだったのかぁと、並列作業してた、FirefoxのNightlyビルドの残念動作をみながら思ったが、続けた。
付属のinstall.shを斜め読みして、挫折して、鵜呑みに実行。
./install.sh
動いた
rustc --version
rustc 0.12.0-pre-nightly (09abbbdaf 2014-09-11 00:05:41 +0000)
CargoというnpmのRust版を知る
git clone https://github.com/bjz/glfw-rs.git
glfw-rs/
Makefileが無い。Cargo.tomlなるファイルが怪しい。
CargoがRustでのメジャーなパッケージ管理システムらしい。
Cargoを入れる
Nightly向けのバイナリまで配っているようなので、行けるかなと思い、githubあらcloneしてCargoを入れてみたら出来た。
git clone https://github.com/rust-lang/cargo
./configure
make
make install
今度こそglfw-rsを動かす
よくよくglfw-rsのREADME.mdみるとcargoコマンドでの作業が書いてあったw
cargo build
cargo test
./target/title
動いた
まとめ
rustではHello Worldより先にウィンドウを表示出来た。
これで準備ができたので、次は「プログラムでシダを描画する」のRust版を目標に勉強進めよう。