ランチにPicoはいかがでしょうか～第4話　C/C++ 開発環境の導入～

ごきげんよう、ちゃまおです。

今回の記事では、Windows10でC/C++を用いてRaspberry Pi Picoの開発をする為の環境導入について解説します。Micro Pythonの開発環境導入は[第2話](https://qiita.com/Chamaotaku/items/bf7c8c36541987c95790)に記載しているので、そちらをご覧下さい。

#本題に入る前に
スペック違いによるエラー等は考えにくいのですが、念の為に、C/C++の開発環境を導入した私のパソコンについて、必要最低限の情報を載せておきます。

OS: Windows 10 Pro (64bit)
OSバージョン: 2004

CPU: Intel (R) Core(TM) i7-4770HQ CPU @ 2.20Hz
RAM: 16GB

Windows 10には、ローカル環境でLinuxを動かす事が出来るWindows Subsystem for Linux(通称WSL)があります。ただ、今回の記事では、<font color="red">WSLを用いた開発環境導入の方法については取り上げません。</font> 

また、CUIでのコマンド操作(ディレクトリの移動)や、PATHの追加方法などは知っている前提で書きますので、ご了承ください。

#開発環境の導入について解説

ここからは、[Getting started with Raspberry Pi Pico](https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf)のp.35-40を参考に、解説していきます。まずはインストールするものが全部で6つあります。

# 1. [ARM GCC compiler](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads) 

(2021年2月8日時点での最新版は10-2020-q4-major)

リンクの一番上にあるWindows 32-bit Installerのexeファイルをダウンロードして、インストールしましょう。32bit版のみですが、64bitのパソコンでも問題なく動きます。<font color="red">注意点としては、下図の上から3つ目にある"Add path to environment variable"にチェックを入れ忘れない事です。</font>

![armgcc4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/b48ffe0a-e031-a967-99c2-bb8cf2e720f9.png)

# 2. [CMake](https://cmake.org/download/) 

(2021年2月8日時点での最新版は3.19.4)

CMakeは、32bit版と64bit版の両方用意されていますので、お使いの環境に合わせてダウンロードとインストールを行いましょう。どちらにしてもmsiファイルのダウンロードがお勧めです。スクショを忘れてしまいましたが、Install Optionsの所では、"all usersへPATHを追加する"の文章をクリックします。<font color="red">ただし、私の実行環境ではPATHが追加されていなかった為、手動で追加を行いました。</font>

# 3. [Build Tools for Visual Studio 2019](https://visualstudio.microsoft.com/ja/downloads/)

リンク先をスクロールしていき、「Visual Studio 2019のツール」のタブを開くとBuild Tools for Visual Studio 2019が見つかりますので、ダウンロードとインストールしましょう。<font color="red">Getting started with Raspberry Pi Picoのp.36には</font>

>8.2.1.3 Installing Visual Studio Code"

<font color="red">と書かれていますが、恐らく記載ミスです。</font>

インストールの際は、下図の通りの場所にチェックマークを入れましょう。

![vs2019-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/008ac39f-94ea-6881-030c-6a55ae9b88a8.png)

# 4. [Python](https://www.python.org/downloads/) 

(2021年2月8日時点での最新版は3.9.1)

PythonはRaspberry Pi Pico以外でも使い道はあり、例えば、機械学習のフレームワークとして有名な[Tensorflowのシステム要件](https://www.tensorflow.org/install/pip?hl=ja#system-requirements)を読むと、Python3.5-3.8と書かれているので、最新版をインストールする事は必ずしも良いとは限りません。

Getting started with Raspberry Pi Picoのp.37ではPython 3.7を扱っていた為、私は[Python3.7.9](https://www.python.org/downloads/release/python-379/)を選び、x86-64 executable installerのexeファイルをダウンロードしました。

下図ではカスタムインストールを選びましょう。

![python379-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/4d876c90-6125-b223-5fea-5f7a7d185587.png)

下図では一番上の"Install for all users"にチェックを入れましょう。

![python379-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/16716774-f3d7-56e1-0271-68f5f5d8c100.png)

下図では"Disable path length limit"をクリックしておきましょう。

![python379-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/0b44a879-bd0c-fded-15ec-24b9519722eb.png)

# 5. [Visual Studio Code](https://code.visualstudio.com/download) 

(2021年2月8日時点での最新版は1.53.0)

注意点としては、<font color="red">PATHの追加項目にチェックマークを入れ忘れない事</font>で、それ以外は特段難しくなかったと思います(私はかなり昔にインストールしたので、記憶が曖昧です、すみません)。

# 6. [Git](https://git-scm.com/download/win) 

(2021年2月8日時点の最新版は2.30.0)

私は"Git for Windows Setup"の64bit版を選び、ダウンロードとインストールしました。Gitのインストールは選択項目が多くて非常に大変でした。以下では、私が選んだ項目のスクショを貼り付けますので、インストールの参考にして頂ければと思います。

![git2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/3ff913ce-e3bf-5598-4c7d-07edd42d3eec.png)

![git3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/f187235e-082f-0c82-a8b7-7db926a83486.png)

![git4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/8bbbc992-271d-dae8-dd69-ce29256fe460.png)

<font color="red">(注)下図ではVisual Studio Code以外にもエディターを選択できますが、パソコンにインストール済みのエディタしか選択できません。</font>

![git5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/3cab1dfc-7d35-1984-9be6-c287b06283d4.png)

![git6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/706a959c-e726-e962-bbbd-003ce8fabd30.png)

![git7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/a1534482-447d-1202-886d-2edc97f0af0c.png)

![git8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/8ca4f0fc-96ed-4058-1a27-9929f55daf56.png)

![git9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/9db5942f-3662-e80e-907d-bc6e060ebece.png)

![git10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/e2fdc48c-9362-636e-bf4b-69e71c780846.png)

![git11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/b251bfcb-bbff-f6ed-eb92-62bd73eb3720.png)

![git12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/3945f964-4e3a-0916-7f25-6b0a3bbdda0b.png)

![git13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/fb375cac-69a3-b987-480f-caee4574c107.png)

![git14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/dc82f6d9-f6cd-a5fc-d202-8ec3c32813da.png)

# SDKとサンプルコードのダウンロード

必要なもの全てのインストール作業が終わったら、GitのBashを起動させて、インストール作業を行いたいディレクトリに移動して、Getting started with Raspberry Pi Picoのp.38に書いてあるコマンドを打ちます。

> ```
git clone -b master https://github.com/raspberrypi/pico-sdk.git
cd pico-sdk
git submodule update --init
cd ..
git clone -b master https://github.com/raspberrypi/pico-examples.git
 ```

# Developer Command Prompt for VS 2019を用いたサンプルコードのビルド方法

次に、Developer Command Prompt for VS 2019を起動させます。Getting started with Raspberry Pi Picoのp.39によると、

> ```setx PICO_SDK_PATH "..\..\pico-sdk"```

と書かれていますが、<font color="red">この通りに打ち込まないように！！！(私は、この通りに打ち込んで、失敗しました)</font>

[こちらの解説記事](https://notenoughtech.com/featured/c-c-and-micropython-sdk-for-raspberry-pi-pico-on-windows/)が分かりやすかったのですが、要するに、先ほどのコマンドは、「pico-sdkフォルダをダウンロードした場所を、"PICO_SDK_PATH"と言う名前でPATH設定してね。」と言う意味です。

終わったら、ダウンロードしたpico-examplesのフォルダに移動します。そこで以下のコードを打ってください。

>```
mkdir build
cd build
cmake -G "NMake Makefiles" ..
nmake
```

パソコンのスペックにもよりますが、ビルド完了までそれなりに時間が掛かります。無事にビルドが終わると、pico-examples -> buildフォルダ内の各サンプルフォルダの中にUF2ファイルが生成されます。あとは、お好きなUF2ファイルをRaspberry Pi Picoに書き込めば動きます。

# Visual Studio Codeを用いたサンプルコードのビルド方法

Getting started with Raspberry Pi Picoのp.39によると、Developer Command Prompt for VS 2019を立ち上げ、```code```と打ってVisual Studio Codeを立ち上げる事で、ビルド環境の導入が楽になるみたいです。

Visual Studio Codeには、拡張機能があり、これを上手く活用する事で、快適なコーディングが行えます。

インストール直後は英語のメニューになっているので、日本語の拡張機能を入れましょう。左下の歯車マークか、```Ctrl + Shift + X```で拡張機能を開きます。検索窓があるので、"Japanese Language Pack for Visual Studio Code"を検索して、インストールします(下図)。インストール後の設定方法は、使用法の所に記載があるので、それを読みながら作業してください。

![VSCode_CLang.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/90ba718c-9e76-96e0-3936-7eec70198b69.png)

続いて、"CMake Tools"を検索して、インストールします。

![VSCode_CMake_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/57b865e8-3f0c-78c8-2408-83d4bd38de15.png)

CMake Toolsの設定を行う為に、歯車マークか、```Ctrl + ,```で設定を開きます。設定画面左下の拡張機能タブから"CMake Tools configuration"を選びます(下図)。

![VSCode_CMake_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/30e621d8-e586-bddc-a5ac-603380bcce2b.png)

"CMake Tools configuration"の設定画面を下にスクロールしていくと、"Cmake: Configure Environment"が見つかります。Developer Command Prompt for VS 2019を立ち上げ、```code```と打ってVisual Studio Codeを立ち上げている場合は、自動で「項目: PICO_SDK_PATH、値: ご自身で設定したPICO_SDK_PATHの場所」となっていると思います。空だったり、間違っていた場合は、正しく設定してください。

さらに下にスクロールすると"Cmake: Generator"が見つかります。Developer Command Prompt for VS 2019を立ち上げ、```code```と打ってVisual Studio Codeを立ち上げている場合は、自動で「NMake Makefiles」となっていると思います。空だったり、間違っていた場合は、正しく設定してください。

設定が終わったら、Visual Studio Codeの左上から「ファイル -> フォルダを開く」を選択し、pico-examplesフォルダを選択します。そうすると、上の方に「pico-examplesのキットを選択してください」と言う画面が自動で出てきますので、"GCC for arm-none-eabi"を選びます。下の青い枠内で「キットが選択されていません」と言う文字が見えると思いますが、キットを正しく選択したら「GCC for arm-none-eabi」に代わります。

キット選択後は、自動でCMakeが行われるので、終わるまで待ちます。終わったら、下の青い枠内にある歯車マークを押す事でビルドされます。<font color="red">私の環境では未確認ですが、CMake後に自動でビルドされる設定があるかもしれません。</font>

![VSCode_CMake_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/a80880e6-f579-f6ab-d9a3-7ccc0cfc6f80.png)

無事にビルドが終わると、pico-examples -> buildフォルダ内の各サンプルフォルダの中にUF2ファイルが生成されます。あとは、お好きなUF2ファイルをRaspberry Pi Picoに書き込めば動きます。

非常に長くなりましたが、解説は以上になります。お疲れ様でした。

# 次回予告
開発環境が整いましたので、次回は自分で書いたコードのビルドと実行方法を書く予定です。