14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rustを始めてみた

Last updated at Posted at 2014-09-12

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

動いた

rustGlfwTitle.png

まとめ

rustではHello Worldより先にウィンドウを表示出来た。

これで準備ができたので、次は「プログラムでシダを描画する」のRust版を目標に勉強進めよう。

関連記事

14
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?