1
0

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 3 years have passed since last update.

Pythonチョットワカルから始めるRust入門

Last updated at Posted at 2021-02-16

0.png

概要

  • Pythonチョットワカルマンが
  • 「Rustってロゴもサイトもかっこよいから面白そう」と思い
  • OS Sierraのせいでインストールに頓挫しつつも
  • Rustをゼロから触って
  • VScodeでデバッグをキメて
  • Hello Worldするまでの話

Rust入門とかいうn番煎じな記事です。

本当、門に入るレベルなのでご容赦を。

Rustのインストール

で、躓きました。

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

を最初に試しましたが、OSのバージョンが古すぎる!と怒られました。

スクリーンショット_2021-02-16_21_15_24.png

Logic9とかいう化石を使うためにわざとバージョン落としているので、
古いからだめかー…と諦めていたところ、
同じような状況で戦っていていた人の記録があったので、
それを参考にインストールしてみたら、通りました。

$ curl https://sh.rustup.rs -sSf | sh -s -- --help

$ cargo --version
cargo 1.50.0 (f04e7fab7 2021-02-04)

$ rustc --version
rustc 1.50.0 (cb75ad5db 2021-02-10)

$ rustup --version
rustup 1.23.1 (3df2264a9 2020-11-30)

プロジェクトの作成

なにはともあれ、プロジェクトを作成しましょう。
Pythonはファイル一つで完結できる方法を知っているのですが、
Rustは知らないので、おとなしく手順を踏んでプロジェクトを作成します。

$ cargo new hello --bin
$ cd hello
$ tree
.
├── Cargo.lock
├── Cargo.toml
├── src
│   └── main.rs
└── target
    ├── CACHEDIR.TAG
    └── rls
        ├── CACHEDIR.TAG
        └── debug
            ├── build
            ├── deps
            │   ├── hello-76feb4ce3499974c.d
            │   ├── hello-86d258b864f270e1.d
            │   ├── libhello-76feb4ce3499974c.rmeta
            │   ├── libhello-86d258b864f270e1.rmeta
            │   └── save-analysis
            │       ├── hello-76feb4ce3499974c.json
            │       └── hello-86d258b864f270e1.json
            ├── examples
            └── incremental
                ├── hello-27d20vfgw3w3a
                │   ├── s-fvxh8t242p-kdjyar-b2rmmlvckmyu
                │   │   ├── dep-graph.bin
                │   │   ├── query-cache.bin
                │   │   └── work-products.bin
                │   └── s-fvxh8t242p-kdjyar.lock
                └── hello-2v337gk94ucz4
                    ├── s-fvxh8t2nyf-1xpfnvz-2atsjlik91zz
                    │   ├── dep-graph.bin
                    │   ├── query-cache.bin
                    │   └── work-products.bin
                    └── s-fvxh8t2nyf-1xpfnvz.lock

Hello worldをターミナルからキメにいく

Rust入門 - とほほのWWW入門 を見ていくと、

どうやら cargo run とするとHello Worldできるみたいですので、
早速やっていきます。

$ cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.09s
     Running `target/debug/hello`
Hello, world!

できた。

VSCodeのデバッグからキメにいく

デバッグのたびにいちいちcargo run するのは少々面倒なので、
愛用エディターのVSCodeでデバッグできるようにしましょう。

拡張機能のインストール

調べると、以下の拡張機能が必要とのことなのでインストールします。

コードの補完や色付けをするやつ。

よくわからないけどとにかくRustをちゃんとデバッグできるやつ。

さあF5を押してデバッグ

スクリーンショット 2021-02-16 21.38.34.png

  • 訳:起動構成が提供されていないため、デバッグを開始できません。

まあlaunch.json 設定してないし、OKしか押せないのでOK

スクリーンショット 2021-02-16 21.39.19.png

  • 訳:このワークスペースでCargo.tomlが検出されました。
    ターゲットの起動構成を生成しますか?

Noを押した世界線の僕はデバッグできなかったらしいので、
Yesを選択します。
すると、自動的にlaunch.json が設定されます。

{
  // IntelliSense を使用して利用可能な属性を学べます。
  // 既存の属性の説明をホバーして表示します。
  // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "lldb",
      "request": "launch",
      "name": "Debug executable 'hello'",
      "cargo": {
        "args": [
          "build",
          "--bin=hello",
          "--package=hello"
        ],
        "filter": {
          "name": "hello",
          "kind": "bin"
        }
      },
      "args": [],
      "cwd": "${workspaceFolder}"
    },
    {
      "type": "lldb",
      "request": "launch",
      "name": "Debug unit tests in executable 'hello'",
      "cargo": {
        "args": [
          "test",
          "--no-run",
          "--bin=hello",
          "--package=hello"
        ],
        "filter": {
          "name": "hello",
          "kind": "bin"
        }
      },
      "args": [],
      "cwd": "${workspaceFolder}"
    }
  ]
}

ということで改めてF5でデバッグをキメると
Hello, world! と表示され、本日は勝利です。

対戦ありがとうございました。
明日から楽しませていただきます。

参考

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?