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 1 year has passed since last update.

VS CodeのRaspberry Pi Pico拡張機能で作成したpico-sdkプロジェクトをbuildディレクトリなしで再ビルドする

Last updated at Posted at 2024-08-31

tl;dr

  • VS CodeのRaspberry Pi Pico拡張機能を使うと、ビルドツールにmakeではなくNinjaを使って、VS Codeのタスク機能tasks.jsonが組まれる
  • cmake .. -G Ninja と、ビルドツールを指定してcmakeを行う

Arduinoではなくpico-sdkを使う場合、VS CodeのRaspberry Pi Pico拡張機能を使ってセットアップできる

Rasbperry Pi PicoにはArduino Framework以外にも、Raspberry Pi PicoのSDKであるpico-sdkを使って開発を行うことができる。公式のC/C++ドキュメントはpico-sdkを利用したガイドになっている。

pico-sdkのプロジェクトを作る方法として、公式からVS Code拡張機能であるRaspberry Pi Pico拡張機能が提供されている。

この拡張機能を使って、コマンド「Raspbery Pi Pico: New Pico Project」を使うと、UIで選択しながら、Raspberry Pi Picoのプロジェクトの初期セットアップを行うことができる。

image.png

コマンド「Task: Run Task」からビルドするタスク「Compile Project」などのが組まれている。

ただし、現状生成されたプロジェクトには.gitignoreは追加されておらず、pico-sdk本体を含むコードがリポジトリにコミットされてしまう。pico-exampleの.gitignoreにあるように、buildを取り除くと良い

.gitignore
build
build-*

buildディレクトリなしでコマンドを実行するとエラーになる

再度チェックアウトした状態など、buildディレクトリがない状態で、タスク「Compile Project」を実行すると、エラーが発生する。buildディレクトリがないことを告げている。

 *  Executing task: /home/nnyn/.pico-sdk/ninja/v1.12.1/ninja -C /home/nnyn/ghq/github.com/74th/test-raspberry-pi-pico/20240831-pico2-Lchika/build 

ninja: Entering directory `/home/nnyn/ghq/github.com/74th/test-raspberry-pi-pico/20240831-pico2-Lchika/build'
ninja: fatal: chdir to '/home/nnyn/ghq/github.com/74th/test-raspberry-pi-pico/20240831-pico2-Lchika/build' - No such file or directory

 *  The terminal process "/home/nnyn/.pico-sdk/ninja/v1.12.1/ninja '-C', '/home/nnyn/ghq/github.com/74th/test-raspberry-pi-pico/20240831-pico2-Lchika/build'" failed to launch (exit code: 1). 

よくあるように、cmakeを使って単純に以下のコマンドを使った場合でも、タスクを実行するとNinjaがない旨のエラーが出る。

# ⚠︎⚠︎ 間違った方法 ⚠︎⚠︎
mkdir build
cd build
cmake ..
 *  Executing task: /home/nnyn/.pico-sdk/ninja/v1.12.1/ninja -C /home/nnyn/ghq/github.com/74th/test-raspberry-pi-pico/20240831-pico2-Lchika/build 

ninja: Entering directory `/home/nnyn/ghq/github.com/74th/test-raspberry-pi-pico/20240831-pico2-Lchika/build'
ninja: error: loading 'build.ninja': No such file or directory

 *  The terminal process "/home/nnyn/.pico-sdk/ninja/v1.12.1/ninja '-C', '/home/nnyn/ghq/github.com/74th/test-raspberry-pi-pico/20240831-pico2-Lchika/build'" failed to launch (exit code: 1). 

Raspberry Pi Pico拡張機能を使って作られたプロジェクトは、ビルドツールとしてmakeではなくNinjaを使った設定がなされている。

なお、make用に作られているため、makeを実行する分にはそのまま使うことができる。

ビルドツールにNinjaを使うようにcmakeを実行する

Ninjaを使う場合、cmakeに-G Ninjaを付けて実行する。

cmake .. -G Ninja

先のコマンドでmakeを対象にbuildディレクトリを作ってしまったのであれば、一度削除する。

cd ..
rm -rf build
mkdir build
cd build

cmake .. -G Ninja

これで、タスク「Compile Project」を実行してもエラーにならずにビルドができる。

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?