Windows Raspberry Pi Pico C/C++環境導入でハマったときの解決法

#概要
 Windowsで Raspberry Pi Pico C/C++環境導入しようとしたらエラーでハマったのでメモ

#環境
 Windows 10 Home 64bit

#エラー
公式にある[Getting started with Raspberry Pi Pico](https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf)の「9.2. Building on MS Windows」に沿ってインストールを進めていきビルドしようとしたところ下記のようなメッセージが出て途中で止まってしまいました。

```
C:\raspi_pico\pico-examples\build>cmake -G "NMake Makefiles" ..
Using PICO_SDK_PATH from environment ('C:\raspi_pico\pico-sdk')
PICO_SDK_PATH is C:/raspi_pico/pico-sdk
Defaulting PICO_PLATFORM to rp2040 since not specified.
Defaulting PICO platform compiler to pico_arm_gcc since not specified.
-- Defaulting build type to 'Release' since not specified.
PICO compiler is pico_arm_gcc
PICO_GCC_TRIPLE defaulted to arm-none-eabi
-- The C compiler identification is GNU 10.2.1
-- The CXX compiler identification is GNU 10.2.1
-- The ASM compiler identification is GNU
-- Found assembler: C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2020-q4-major/bin/arm-none-eabi-gcc.exe
Defaulting PICO target board to pico since not specified.
Using board configuration from C:/raspi_pico/pico-sdk/src/boards/include/boards/pico.h
-- Found Python3: C:/Program Files/WindowsApps/PythonSoftwareFoundation.Python.3.9_3.9.1520.0_x64__qbz5n2kfra8p0/python3.9.exe (found version "3.9.5") found components: Interpreter
TinyUSB available at C:/raspi_pico/pico-sdk/lib/tinyusb/src/portable/raspberrypi/rp2040; adding USB support.
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
ELF2UF2 will need to be built
PIOASM will need to be built
-- Configuring done
-- Generating done
-- Build files have been written to: C:/raspi_pico/pico-examples/build

C:\raspi_pico\pico-examples\build>nmake

Microsoft(R) Program Maintenance Utility Version 14.28.29915.0
Copyright (C) Microsoft Corporation.  All rights reserved.

Scanning dependencies of target bs2_default
[  0%] Building ASM object pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/compile_time_choice.S.obj
[  0%] Linking ASM executable bs2_default.elf
[  0%] Built target bs2_default
[  0%] Generating bs2_default.bin
[  0%] Generating bs2_default_padded_checksummed.S
[  0%] Built target bs2_default_padded_checksummed_asm
[  0%] Creating directories for 'ELF2UF2Build'
[  0%] No download step for 'ELF2UF2Build'
[  0%] No update step for 'ELF2UF2Build'
[  0%] No patch step for 'ELF2UF2Build'
[  0%] Performing configure step for 'ELF2UF2Build'
-- The C compiler identification is MSVC 19.28.29915.0
-- The CXX compiler identification is MSVC 19.28.29915.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.28.29910/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.28.29910/bin/Hostx86/x86/cl.exe - broken
CMake Error at C:/Program Files/CMake/share/cmake-3.20/Modules/CMakeTestCCompiler.cmake:66 (message):
  The C compiler

    "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.28.29910/bin/Hostx86/x86/cl.exe"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: C:/raspi_pico/pico-examples/build/elf2uf2/CMakeFiles/CMakeTmp

    Run Build Command(s):nmake -f Makefile /nologo cmTC_1f9af\fast &&   "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\bin\HostX86\x86\nmake.exe"  -f CMakeFiles\cmTC_1f9af.dir\build.make /nologo -L                  CMakeFiles\cmTC_1f9af.dir\build
    Building C object CMakeFiles/cmTC_1f9af.dir/testCCompiler.c.obj
        "C:\Program Files\CMake\bin\cmake.exe" -E cmake_cl_compile_depends --dep-file=CMakeFiles\cmTC_1f9af.dir\testCCompiler.c.obj.d --working-dir=C:\raspi_pico\pico-examples\build\elf2uf2\CMakeFiles\CMakeTmp --filter-prefix="メモ: インク ルード ファイル:  " -- C:\PROGRA~2\MIB055~1\2019\BUILDT~1\VC\Tools\MSVC\1428~1.299\bin\Hostx86\x86\cl.exe @C:\Users\xxx\AppData\Local\Temp\nm6665.tmp
    testCCompiler.c
    Linking C executable cmTC_1f9af.exe
        "C:\Program Files\CMake\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\cmTC_1f9af.dir --rc=rc --mt=CMAKE_MT-NOTFOUND --manifests -- C:\PROGRA~2\MIB055~1\2019\BUILDT~1\VC\Tools\MSVC\1428~1.299\bin\Hostx86\x86\link.exe /nologo @CMakeFiles\cmTC_1f9af.dir\objects1.rsp @C:\Users\xxx\AppData\Local\Temp\nm66D3.tmp
    RC Pass 1: command "rc /fo CMakeFiles\cmTC_1f9af.dir/manifest.res CMakeFiles\cmTC_1f9af.dir/manifest.rc" failed (exit code 0) with the following output:
    指定されたファイルが見つかりません。NMAKE : fatal error U1077: '"C:\Program Files\CMake\bin\cmake.exe"' : リターン  コード '0xffffffff'
    Stop.
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\bin\HostX86\x86\nmake.exe"' : リターン コード '0x2'
    Stop.





  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:2 (project)


-- Configuring incomplete, errors occurred!
See also "C:/raspi_pico/pico-examples/build/elf2uf2/CMakeFiles/CMakeOutput.log".
See also "C:/raspi_pico/pico-examples/build/elf2uf2/CMakeFiles/CMakeError.log".
NMAKE : fatal error U1077: 'echo' : リターン コード '0x1'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\bin\HostX86\x86\nmake.exe"' : リターン コード '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\bin\HostX86\x86\nmake.exe"' : リターン コード '0x2'
Stop.
```

メッセージ通りCMakeError.logを確認してみると

```
/out:CMakeCCompilerId.exe 
CMakeCCompilerId.obj 
LINK : fatal error LNK1104: ファイル 'kernel32.lib' を開くことができません。
```
kernel32.libが見つけられないようでした。

#解決方法
解決方法を色々調べてWindowsSDKを入れ直したりしましたが、
最終的にはDeveloper Command Promptを管理者権限で実行することで無事ビルドに成功しました。