#1-2 開発環境を作ろう (macOS向け)【もっと!後輩たちのためのEV3rt講座】

# 目次

| 章 | タイトル | 内容 |
|:-:|:-:|:-:|
| 1 | [はじめに](#1-はじめに) | この記事について |
| 2 | [開発環境構築](#2-開発環境構築) | 環境構築について説明 |
| 3 | [最後に](#3-最後に) | この後やる事について説明 |

# 1. はじめに

この記事は [【もっと!後輩たちのためのEV3rt講座】シリーズ](https://qiita.com/koushiro/items/26aca0cb10c1d34c03a1) の [#1 開発環境を作ろう](https://qiita.com/koushiro/items/4ee879e5420260cea6c8) に対する補足記事となります。

https://qiita.com/koushiro/items/4ee879e5420260cea6c8

#1 では、開発環境構築をテーマに、主にWindows PC (本質的にはUbuntuも対象) にEV3rtの開発環境を作成する方法を紹介しました。
しかし、macOSでの環境構築方法は一切紹介していませんでしたので、本記事で説明したいと思います。
（というのも、#1 執筆当時はmacを使っていなかったので…)

環境構築以外の説明 (#1の「EV3rtとは?」など) は省いていきますので、そちらはご自身で #1 の記事をご覧ください。

# 2. 開発環境構築

なるべく Windows(WSL) 版環境構築の流れに合わせて説明していきます。

## Step 1. gcc, make のインストール

まずは、ソースコードを機械語に翻訳するソフトである **「コンパイラ」** をインストールしていきます。
macOSの場合、gccやmakeは「Xcode」というiOSやmacOSアプリを製作するソフトに内包されています。
したがって、App StoreからXcodeをインストールしていしまうのが一番手っ取り早いです。

ただ「Xcode丸ごとインストールするのは容量が大きいので避けたい」という方は、以下のようにgccやmakeのバージョンを問うコマンドを **「ターミナル」** に入力すると、`"make"コマンドを実行するには、コマンドライン・デベロッパ・ツールが必要です。`と聞いてくれるはずなので、そこでインストールするのも一手です。

```zsh:ターミナル.app (zsh)
% make -v
```

![コマンドラインツール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/a816772b-32e8-b2ab-4f68-6ff3b617f57d.png)
( [@yunkya2 様の記事より引用](https://qiita.com/yunkya2/items/2a3bf750a7b578d282dc#xcode-command-line-tools-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB) )

### インストールを確認

先ほども例示した、各ソフトのバージョンを確認するコマンドを入力し、バージョンが表示されるかを確認してください。

```zsh:ターミナル.app (zsh)
% gcc -v
% make -v
```

## Step 2. mkimage のインストール

以下のサイトにアクセスし、 `mkimage` というファイルをダウンロードします。

http://dev.toppers.jp/trac_user/ev3pf/attachment/wiki/DevEnvMac/mkimage

![スクリーンショット 2025-01-02 131935.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/dc39c866-1126-0cce-7551-f409ff6c7c0a.png)

ダウンロードしたファイルを、`/usr/local/bin/` にコピーします。
Finderの **移動 → フォルダへ移動…** を選択し、ディレクトリを指定してフォルダを開くオプションを実行します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/51ba6b85-2860-b173-294f-724cedf14a05.png" width = 70% />

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/4aaebdf7-28f8-fd47-be75-037676b2bc85.png" width = 70% />

指定した `/usr/local/bin` フォルダが開くはずですので、ここに先ほどダウンロードしてきた `mkimage` をコピー&ペーストしてください。

![スクリーン ショット 2025-01-02 に 13.32.21 午後.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/5245d5c5-db9b-e167-9f1c-3308cdfea590.png)



### 実行権限を付与

ダウンロードしてきた `mkimage` には実行権限が付与されていない可能性があります。 (コンピュータがそのプログラムを実行できない状態になっている)
そこで、以下のコマンドを入力し、実行権限を付与します。

```zsh:ターミナル.app (zsh)
% chmod 755 /usr/local/bin/mkimage
```

これで実行権限は付与できていますが、正しく出来ているか確認したい場合は、以下のコマンドを入力してみてください。

```zsh:ターミナル.app (zsh)
% cd /usr/local/bin
% ls -l
```

すると、 `/usr/local/bin` フォルダ内にあるファイルが一覧表示されるはずですが、この中から `mkimage` の行を見つけ出してください。
この行の先頭が、`-rwxr-xr-x` で始まっていればOKです。

![スクリーンショット 2025-01-02 13.46.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/049aaf41-da80-f10d-942a-e6c348e890e1.png)

## Step 3. GNUツールチェーンのインストール

「ARM社のマイコン用のGCCコンパイラ」をインストールしていきます。
EV3はARM社のプロセッサ `Texas Instruments AM1808 ARM Microporcessor` を採用していますが、このARMプロセッサ用のコンパイラが必要となります。

まずは、以下のサイトにアクセスします。

https://launchpad.net/gcc-arm-embedded/+download

動作確認済バージョンである `gcc-arm-none-eabi-5_4-2016q2-20160622-mac.tar.bz2` を探してダウンロードしてください。
(リンク切れしていなければ、以下のリンクから直接アクセスできるはずです)

https://launchpad.net/gcc-arm-embedded/5.0/5-2016-q2-update

![スクリーンショット 2025-01-02 135900.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/4e4af7ff-3e04-43af-2daf-7abca7363e6e.png)

ダウンロードしたらFinderで開き、圧縮ファイルが「展開」された状態にしておいてください。

展開出来たらフォルダの場所を `/usr/local/` へと移動させます。
先ほど同様、Finderから **移動 → フォルダへ移動…** を選択し、 `/usr/local/` を入力して移動してください。
移動出来たら、ダウンロードして展開したフォルダを丸ごとコピー&ペーストしましょう。

![スクリーンショット 2025-01-02 19.43.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/331124fc-7754-0ad7-dade-eb0b818b5315.png)

## Step 4. パスを通す

:::note warn
macOSは2019年のCatalinaからデフォルトのシェルが `zsh` に変更されています。
本記事でも `zsh` を使用していることを前提に説明していきます。
(ターミナル.app のウィンドウ上端に `zsh` の文字が見つかればOKです)
:::

 `mkimage` や GNUツールチェーンは **パスが通っている** 必要があります。
パスが通っているとは、簡単に言えばターミナルでコマンド実行時に、コンピュータが `mkimage` などを見つけられる状態のことを意味します。
では、ターミナルを使いパスを通していきます。

まず前提確認をしていきます。ホームで以下のコマンドを入力してください。

```zsh:ターミナル.app (zsh)
% ls -a
```

この時、 `.zshrc` というファイルがあるかを確認してください。
無かった場合は、以下のコマンドでファイルを新規作成します。

```zsh:ターミナル.app (zsh)
% touch .zshrc
```

続いて、以下のコマンドを入力し、ファイルを開きます。

```zsh:ターミナル.app (zsh)
% open ~/.zshrc
```

開いたら以下の文を追記してください。

```
export PATH=/usr/local/bin:$PATH
export PATH=/usr/local/gcc-arm-none-eabi-5_4-2016q2/bin:$PATH
```

編集出来たら保存して閉じてください。
最後に、内容を反映させます。

```zsh:ターミナル.app (zsh)
% source ~/.zshrc
```

これでパスを通す作業は完了です。

## Step 5. EV3rtのファイルをダウンロード ⇒ 配置

いよいよEV3rtのソースコードをダウンロードしていきます。
TOPPERS/EV3rtのページから、EV3rtのファイルをダウンロードしましょう。

https://dev.toppers.jp/trac_user/ev3pf/wiki/Download

このページの一番上にある2021年6月25日リリースの1.1版のファイルをダウンロードしましょう。
(ev3rt-1.1-release.zipというzipファイル)

:::note warn
上記ページでのzipファイルのダウンロードですが、Google Chromeを利用するとダウンロードが出来ません。
よって、Safari などの他のブラウザを利用するようにしてください。
:::

ダウンロードが出来たらzipファイルを展開してください。(自動的に展開されているかも)
`ev3rt-1.1-release` というフォルダが出来ているはずです。

これを、自分の分かりやすい場所に配置してください。
今回は、`Users` (自分の名前のフォルダ)直下に `Workspace` フォルダを配置し、その下に置くこととします。
自分で場所が把握できればどこでもいいです。ただし、iCloudと同期するようなフォルダ(デスクトップなど)はあまりお勧めしません。

![スクリーンショット 2025-01-02 14.39.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/017d4aa7-236c-cfc7-fbdd-d9cf6963363b.png)

配置出来たら、 `ev3rt-1.1-release` フォルダ内の `hrp3.tar.xz` ファイルを開き、展開してください。
完了すると新たに `hrp3` フォルダが出来るはずです。

## Step 6. EV3RTのコンフィギュレータ（cfg）のインストール

以下のサイトにアクセスし、mac用のバイナリファイル(動作確認済) `コンフィギュレータ Release 1.9.4（64bit MacOSX用バイナリ）` をダウンロードします。

https://toppers.jp/cfg-download.html

ダウンロードした圧縮ファイルを展開すると、`cfg` ファイルのみが出現するはずです。
この `cfg` ファイルを `ev3rt-1.1-release/hrp3/cfg/` にコピーします。

これにて、環境構築は完了です！！
この後は、実際に構築した環境の動作確認をしていきます。

## Step 5. 動作確認

それでは最後に、プログラムをコンパイル出来るか確認してみましょう。

ターミナルを開き、EV3rtの ワークスペースフォルダ `ev3rt-1.1-release/hrp3/sdk/workspace` に移動します。
この次々回詳しく説明しますが、このフォルダ内にプロジェクトを作製していきます。

```zsh:ターミナル.app (zsh)
% cd Workspace/ev3rt-1.1-release/hrp3/sdk/workspace
```

今回は既に用意されているサンプルプログラムをコンパイルしてみます。
以下のコマンドでコンパイルを行います。

```zsh:ターミナル.app (zsh)
% make app=helloev3
```

今回はhelloev3というプログラムをビルドしました。
このサンプルプログラムはev3rtのチュートリアル的なプログラムになっています。

さて、私が本記事を書くにあたりテストした際、このコマンドを実行すると以下のようなポップアップが表示されました。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/2ea838f1-8157-9034-9c2d-c501f7edbded.png" width=60% />

どうやらmacOSによりコンパイラの実行がブロックされたようです。
回避しないことにはコンパイルが出来ませんので、ここで「設定」を開きます。

![スクリーンショット 2025-01-02 14.45.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/d5228936-0fe7-28ed-1fd2-2395343e050d.png)

「プライバシーとセキュリティ」を開き、一番下まで行くと、上記画像の赤で囲んだ部分が表示されているはずです。
これの「このまま許可」を押し、もう一度コンパイルコマンドを実行します。

すると、今度はポップアップの内容が変化します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/b6b1be72-2d52-a134-64f2-e27a898fd286.png" width=60% />

先ほどは「検証出来なかったから実行しません(させません)」だったのが、「検証は出来なかったけど、あなたが信頼できるなら実行してもいいよ？」というように、実行するオプションが表示されるようになりました。
ここで **「このまま開く」** を押して、コンパイルを行って下さい。

尚、私が試したところ、 **合計6回程度** 、この作業を行う必要がありました。
その度にコンパイルが止まってしまい大変面倒ですが、恐らく最初だけの確認ですのでやり切ってください。

無事全てのブロックに許可を与え終わったら、通常のコンパイルがスタートするはずです。
コンパイルが問題無く完了すると、最終行に `LD app` と表示されて終了するはずです。

![スクリーンショット 2025-01-02 15.03.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183170/11e896e1-31d5-c75a-8e7c-0b695f61e0f5.png)

また、Finderで `Users/Workspace/ev3rt-1.1-release/hrp3/sdk/workspace` フォルダを開くと、今生成した実行ファイル `app` が発見できるはずです。

以上で、動作確認は完了です!!

# 3. 最後に

#1 の Windows(WSL) 版の記事では、この後 **microSDカードの準備** を行います。
ここからは、エクスプローラーとFinderで表示は多少違えど、やる事はWindowsでもmacOSでも共通ですので、そちらを参照してください。

https://qiita.com/koushiro/items/4ee879e5420260cea6c8#5-microsd%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AE%E6%BA%96%E5%82%99

今回はEV3rtの開発環境構築をmacOSで行う方法について解説しました。
macOSのセキュリティ強化により、私が現役で使っていたころより手間が多くなっていますが、一応まだ動作しますので、是非macOSでもEV3rtの開発を進めていってください！

本編: [#1 開発環境を作ろう](https://qiita.com/koushiro/items/4ee879e5420260cea6c8)
次回: [#2 エディタを使おう(VisualStudio Code)](https://qiita.com/koushiro/items/35f74cce0961fc442b11)