MacでRustの開発環境を整えたのでそのメモ。
※※※ 2015/7/14時点のお話です ※※※
環境
- Mac:OS X Mavericks
- Eclipse:Mars Release (4.5.0)
- Rust:1.1.0
- RustDT:0.2.2
Rustのインストール
以下のコマンドでインストール
$ curl -sf -L https://static.rust-lang.org/rustup.sh | sh
ちゃんと入ってるか確認
$ rustc --version
rustc 1.1.0 (35ceea399 2015-06-19)
インストールされたモノはここにある。
/usr/local/lib/rustlib
/usr/local/share/doc/rust
IDE
RustのIDEはどれもまだそれほど充実していない。
個人的にはIntelliJを使いたいのだけどコード補完もしてくれないのでパス。
今回はEclipseのRustプラグインであるRustDTで環境構築する。
※RustDTを使うには以下の条件を満たしている必要がある
Eclipse 4.5 (Mars)以上
Java VM version 8 以上
プラグインのインストール
- 「ヘルプ」 > 「新規ソフトウェアのインストール」 > 「追加」
- 「URL」に
https://rustdt.github.io/releases/
を入力 - 表示される
RustDT Project
チェックボックスにチェック - OKとか同意とかポチりながら進める
- Eclipse再起動
設定
- 「Eclipse」 > 「環境設定」 > 「Rust」
- 「Rust installation」 > 「ディレクトリー」に
/usr/local
を入力
※上記の方法でRustをインストールした場合のディレクトリパスです
プログラムの実行
- 「実行」 > 「実行構成」 > 「Rust Application」 > 「新規作成」(Wクリック or 右クリック)
- 「名前」は任意、「プロジェクト」には実行したいプロジェクト、「プログラム・パス」にはCargoでビルドされた実行ファイル(例:
target/debug/hello_world
)をそれぞれ設定する - 実行
コード補完
コード補完するにはRacerというツールを使う。
ここでは引き続きEclipseでの設定まで。
Racerの取得とビルド
現状以下のようにGitからクローンしてきてビルドするみたい。
任意の場所で実行。
$ git clone https://github.com/phildawes/racer.git
$ cd racer
$ cargo build --release
Rustのソースコードを取得
- Racerを動作させるにはRustのソースコードが要るみたいなのでここからダウンロードする。
- ダウンロードできたら展開して任意の場所に置く。
Eclipseの設定
- 「Eclipse」 > 「環境設定」 > 「Rust」
- 「Rust installation」 > 「Rust 'src' Directory」に
{Rust配置Dir}/src
を入力 - 「Racer Installation」 > 「実行可能ファイル」に
{Racer配置Dir}/target/release/racer
を入力
これでコード補完してくれるようになる。
Debug
RustのデバッグはGDBで行う。
GDBのインストール
homebrewでインストール。
$ brew install homebrew/dupes/gdb
$ gdb --version
GNU gdb (GDB) 7.9
...
証明書の作成と署名
OS XでGDBを使う(ためにコード署名をする)
コレをそのまま進めればOK
taskgatedの設定
/System/Library/LaunchDaemons/com.apple.taskgated.plist
を開いて次のように編集する
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>POSIXSpawnType</key>
<string>Interactive</string>
<key>EnableTransactions</key>
<true/>
<key>Label</key>
<string>com.apple.taskgated</string>
<key>MachServices</key>
<dict>
<key>com.apple.taskgated</key>
<dict>
<key>TaskSpecialPort</key>
<integer>9</integer>
</dict>
</dict>
<key>ProgramArguments</key>
<array>
<string>/usr/libexec/taskgated</string>
- <string>-s</string>
+ <string>-sp</string>
</array>
</dict>
</plist>
変更したらMacを再起動する
Eclipseでデバッグ
- 「実行」 > 「デバッグの構成」 > 「{デバッグしたいタスク}」 > 「デバッガー」 > 「GDBデバッガー」にGDBの実行ファイルを指定(例:
/usr/local/Cellar/gdb/7.9/bin/gdb
) - 適当にブレークポイントを貼る
- デバッグを実行
自分の環境ではこれでちゃんと止まった。
所感
正直、開発環境としてはまだまだ発展途上だなーと思った。
今後のアップデートに期待。
(IntelliJで開発したい!!!)
参考
http://www.inet88.co.jp/engineer-blog/rust_001
http://www.inet88.co.jp/engineer-blog/rust_002
変更履歴
2015/7/15
RustDTのv0.2.2が7/13にリリースされたことで、Eclipseが4.5(Mars)以上が必須になったようなのでちょこっと修正しました。