久しぶりにAzure Sphereのサンプルコードをビルドしてみたところ、CMakeでAPI set "4" is not valid.
というエラーが発生しました。
なんだろう???手元のサンプルコードを壊してしまったかな?
気を取り直して、githubからクローンし直してみても状況変わらずorz
うーむ、ちゃんと調べて見ることに。
2> [CMake] CMake Error at C:/Program Files (x86)/Microsoft Azure Sphere SDK/CMakeFiles/AzureSphereToolchainBase.cmake:38 (MESSAGE): 2> [CMake] API set "4" is not valid. Valid API sets are: ["3", "3+Beta1909"]
API setの"4"
は不正で、3
か3+Beta1909
を使えと言っています。
サンプルコードAPI setは、CMakeSettings.jsonで指定していて、4
です。4
を使おうとしているのは意図通り。
では、有効なAPI setsの方はというと、、、
エラーメッセージをよく見ると、AzureSphereToolchainBase.cmakeの38行目が関係しているようで、このファイルを見ると、なんとなくSDKのSysrootsフォルダからAPI setを取ってきていることがわかります。
SDKのSysrootsフォルダを見ると、3
と3+Beta1909
ってことで、まぁエラーになるわねといった感じ。
API setとAzure Sphere OSの対応は、ちょっと分かりにくいのですがここに書かれていて、
19.09で3
。20.01で4
。
あれ??手元の環境、20.01にアップグレードし忘れ!?
そんな凡ミスか??と思いましたが、azsphereコマンドで確認すると20.01になっていました。
うむむ、、、なんだろう?
もしかして、SDKがアップデートされているのでは?と思い、Azure Sphere SDK for Visual Studioからダウンロードしてみたところ、ファイルバージョンが上がっていました。
左が以前にダウンロードしたSDK、右が今日ダウンロードしたSDK。
では、今日ダウンロードしたSDKをインストール。
インストールした結果、4
のフォルダができました。
azsphereコマンドのバージョンも、しれっと20.1.6.56047
から20.1.6.56107
に上がっていました。
無事、サンプルコードをビルドできるようになりました。
今回調べていて気付いたのですが、、、
docsからAzure SphereのRelease Notesが消えている、、、ミスかな?それとも意図的?
何気にSDKがマイナーバージョンアップしてたし。
組み込み用途なので、、、バージョンが上がったこと、そのときの差異はきっちりと情報公開してもらいたい。