stop-the-world

takuya-a のブログ

Rust の開発環境セットアップ

Linux (Ubuntu 19.10) に Rust の開発環境を作ったメモです。IDE として VSCode を使います。

Rust の開発環境

  • Rust ツールチェイン
    • rustc
    • cargo
      • ビルドマネージャ兼パッケージマネージャ
    • std
      • Rust の標準ライブラリ群
  • リンカ
    • コンパイル済みのオブジェクトファイルやライブラリをリンクして実行可能バイナリにするツール
    • OS ごとに標準的に用意されているもの (ld など) を使う
  • rustup
    • Rust ツールチェインや関連ツールのインストール・管理ツール
    • 複数のバージョン (stable, beta, nightly) のツールチェインを管理できる
      • rbenv, pyenv のようなイメージ
    • ロスコンパイル用のターゲットをインストールできる

開発環境のセットアップ

Rust ツールチェインと VSCode のセットアップを行う。

Rust ツールチェインのインストール

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
info: downloading installer

Welcome to Rust!

This will download and install the official compiler for the Rust
programming language, and its package manager, Cargo.

It will add the cargo, rustc, rustup and other commands to
Cargo's bin directory, located at:

  /home/takuya-a/.cargo/bin

This can be modified with the CARGO_HOME environment variable.

Rustup metadata and toolchains will be installed into the Rustup
home directory, located at:

  /home/takuya-a/.rustup

This can be modified with the RUSTUP_HOME environment variable.

This path will then be added to your PATH environment variable by
modifying the profile files located at:

  /home/takuya-a/.profile
/home/takuya-a/.bash_profile

You can uninstall at any time with rustup self uninstall and
these changes will be reverted.

Current installation options:


   default host triple: x86_64-unknown-linux-gnu
     default toolchain: stable
               profile: default
  modify PATH variable: yes

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>

1 を入力してインストール。

  • ~/.cargo/bin/cargo , rustc , rustup などがインストールされる
    • CARGO_HOME で変更できる
  • /.rustup/rustupメタデータとツールチェインがインストールされる
    • RUSTUP_HOME で変更できる

また、 ~/.profile~/.bash_profile に以下が追記される:

export PATH="$HOME/.cargo/bin:$PATH"

パスの設定をシェルに反映すると、 rustc , cargo , rustup などがそのまま使えるようになる。

$ . ~/.cargo/env

VSCode のセットアップ

  • Rust (rls) 拡張 のインストール
    • RLS (Rust Language Server) と通信して補完などを支援してくれる拡張
    • 拡張をインストールしたあと、 RLS をインストールするかどうかをポップアップで聞かれるのでインストールする
  • CodeLLDB 拡張 のインストール
    • デバッガ LLDB を VSCode から使うための拡張
    • VSCode 上で、ブレイクポイントの設定やステップ実行が可能

プロジェクトの作成・ビルド・実行

以下で ~/workspace/hello/ 以下に bin クレート(バイナリパッケージ向けのプロジェクト)が作成される:

$ cd ~/workspace
$ cargo new --bin hello
     Created binary (application) `hello` package

cargo build でパッケージをビルドできる:

$ cd hello
$ cargo build
   Compiling hello v0.1.0 (/home/takuya-a/workspace/hello)
    Finished dev [unoptimized + debuginfo] target(s) in 0.23s

ビルドした実行可能バイナリは target/debug/ 以下に置かれる:

$ ls target/debug/
build  deps  examples  hello  hello.d  incremental
$ target/debug/hello
Hello, world!

参考

実践Rust入門[言語仕様から開発手法まで]

実践Rust入門[言語仕様から開発手法まで]