Rust 開発環境構築 - Eclipse で構築してみた
LifeTime や Trait、関数型プログラミング的な事も可能らしいシステムプログラミング言語辺りの ワードが気になって Rust を始めてみようと思いたった。
で、まずは環境構築からと言う事で探してみた。
開発環境選定
タイトルにも入れてるが今回は Eclipse のプラグインで提供されている RustDT を選ぶことにした。 デバッグ機能が頭一つ抜けていると思ったため。
定義ジャンプ・コード補完・色付け辺りは大体どの環境も備えてて、gdb をコマンドラインでガシガ シ使える人ならどれを選んでもそんなに機能差は無いと思う。
以下各環境を少し調べた雑感。
Emacs
- 個人的には手を切りたいエディターというのはさておき
- 例によって色々モードはあり設定も今はさほど面倒でもない
- GDB とのデバッグ連携もかなり GUI っぽくなってるんだが 見た目がもはや他の IDE よりも煩雑になってる感じなのでスルー
IntelliJ
- こちらもプラグインがあるのだが軽く情報を探った感じデバッガ連携が見当たらなかったので見送り
- サイトを見ただけで試してはいない
VisualStudio
Eclipse
他にもいくつか見かけたが未確認。
事前環境
- MinGW-w64
- Rust 1.8.0 GNU ABI
- racer
- コード補完を受け持つ外部ツール
- 一番楽なのは Rust 入れた後
cargo install racer
とコマンド打つだけ
- Rust のソースを DL、環境変数 RUST_SRC_PATH にソースを展開したパスを指定してある事
- racer で必要
結構事前準備が必要なんだけどどれもさほど面倒でもないのと記事を書いた時点では 既に導入してしまっていたので割愛。
Eclipse, RustDT インストール
とは言っても、既に ブログ記事 があったので基本はそこに従った。
ただ、事前環境でも書いたが、Rust は GNU ABI の方を入れる事。
デバッグ動作確認
こんなコードを書いた。*1
fn main() { let a = 10; let b = 20; let c = "こんにちわ"; println!("{}, {} 年後の世界!", c, add(a, b)); } fn add(x: i32, y: i32) -> i32 { x + y }
んで2行目にブレークポイント設定してデバッグ実行。ブレークポイント設定は行表示している辺りを ダブルクリックすれば設定される。
んでブレークした所にも止まるし、ステップ実行も可能なんだけど変数を見る時 数値はいいんだが文字列は C/C++ 同様パッと見た感じさっぱり分からん。
ここ に書かれていた事を頼りに gdb の Rust pretty-printer を導入してみたが 文字列は対応してないっぽい。
文字列の簡単なデバッグ方法が今後の課題だけどとりあえずは しばらく RustDT を使いつつ勉強してみよう。