earlephilhower / arduino-pico

Raspberry Pi Pico Arduino core, for all RP2040 and RP2350 boards
GNU Lesser General Public License v2.1
2.03k stars 422 forks source link

How to set up arduino-pico in strictly cmake-based project? #1458

Closed madskjeldgaard closed 1 year ago

madskjeldgaard commented 1 year ago

Hi!

Thanks so much for all this awesome work you have done. I am trying to set up a strictly CMake-based project to include this library (the goal is to add it to my midi controller template (https://github.com/madskjeldgaard/SimplePicoMidiController)) and I am having some issues. I feel like I am pretty close. Most of the errors I get seem to be because <cstring> hasn't been included somehow.

Here is my CMake setup (arduino-pico is in include/arduino-pico of my project):


  message(STATUS "Using Arduino core")

  # Define PICO for c++ Preprocessor
  add_definitions(-DPICO -DARDUINO=183 -DARDUINO_ARCH_RP2040
                  ${ARDUINO_SKETCH_DEFINITIONS})

  set(PICO_SDK_ARDUINO_PATH "${CMAKE_CURRENT_LIST_DIR}/include/arduino-pico")

  set(ARDUINO_CORE_API_PATH "${PICO_SDK_ARDUINO_PATH}/ArduinoCore-API/api")
  set(ARDUINO_RP2040_PATH "${PICO_SDK_ARDUINO_PATH}/cores/rp2040")

  # Arduino PICO Implementation
  file(GLOB ARD_DIR_LIST CONFIGURE_DEPENDS
       "${ARDUINO_CORE_API_PATH}/*.cpp")
  file(GLOB ARD_DIR_PICO_LIST CONFIGURE_DEPENDS
       "${ARDUINO_RP2040_PATH}/api/*.cpp")

   # Get all the headers
  file(GLOB_RECURSE HEADER_LIST CONFIGURE_DEPENDS
       "${ARDUINO_CORE_API_PATH}/*.h"
       "${ARDUINO_RP2040_PATH}/api/*.h")

  # Print path of Arduino PICO Implementation
  message(STATUS "ARDUINO PICO PATH: ${PICO_SDK_ARDUINO_PATH}")

  # Print all found sources
  message(STATUS "ARD_DIR_LIST: ${ARD_DIR_LIST}")
  message(STATUS "ARD_DIR_PICO_LIST: ${ARD_DIR_PICO_LIST}")

  add_executable(
    BigBlinkingButton
    BigBlinkingButton.cpp usb_descriptors.c ${HEADER_LIST}
    ${ARDUINO_SKETCH_SOURCE} ${ARD_DIR_LIST} ${ARD_DIR_PICO_LIST})

  # include("${PICO_SDK_ARDUINO_PATH}/ArduinoSketch.cmake")

  target_include_directories(
    BigBlinkingButton
    PRIVATE ${CMAKE_CURRENT_LIST_DIR}
            ${CMAKE_CURRENT_LIST_DIR}/.. # for our common lwipopts or any other
            # standard includes, if required
            ${CMAKE_SOURCE_DIR}/include
            # ${CMAKE_SOURCE_DIR}/include/OSC Instrumental
            # ${CMAKE_CURRENT_LIST_DIR}/include/instrumental/ Arduino stuff
            ${ARDUINO_SKETCH_INCLUDES}
            ${ARDUINO_RP2040_PATH}
            ${ARDUINO_CORE_API_PATH}
            )

  # Standard Sketch logic project("${ARDUINO_SKETCH_NAME}")

  target_link_libraries(
    BigBlinkingButton
    arduino
            pico_stdio_usb
            pico_stdlib
            pico_runtime
            pico_multicore
            pico_util
            pico_unique_id
            hardware_pwm
            hardware_adc
            hardware_clocks
            hardware_spi
            hardware_i2c
            hardware_pio
            hardware_dma
            tinyusb_device
            tinyusb_board
            ${ARDUINO_SKETCH_LIB}
            )
madskjeldgaard commented 1 year ago

And here is the error:

And here is the error output from my build, in all it's gory details:

[0/2] Re-checking globbed directories...
[1/77] Performing build step for 'ELF2UF2Build'
ninja: no work to do.
[2/77] Performing build step for 'PioasmBuild'
ninja: no work to do.
[7/77] Building CXX object CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/IPAddress.cpp.obj
FAILED: CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/IPAddress.cpp.obj 
/opt/homebrew/bin/arm-none-eabi-g++ -DARDUINO=183 -DARDUINO_ARCH_RP2040 -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DCFG_TUSB_OS=OPT_OS_PICO -DLIB_PICO_BIT_OPS=1 -DLIB_PICO_BIT_OPS_PICO=1 -DLIB_PICO_DIVID
ER=1 -DLIB_PICO_DIVIDER_HARDWARE=1 -DLIB_PICO_DOUBLE=1 -DLIB_PICO_DOUBLE_PICO=1 -DLIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1 -DLIB_PICO_FLOAT=1 -DLIB_PICO_FLOAT_PICO=1 -DLIB_PICO_INT64_OPS=
1 -DLIB_PICO_INT64_OPS_PICO=1 -DLIB_PICO_MALLOC=1 -DLIB_PICO_MEM_OPS=1 -DLIB_PICO_MEM_OPS_PICO=1 -DLIB_PICO_MULTICORE=1 -DLIB_PICO_PLATFORM=1 -DLIB_PICO_PRINTF=1 -DLIB_PICO_PRINTF_PICO=1 -DLI
B_PICO_RUNTIME=1 -DLIB_PICO_STANDARD_LINK=1 -DLIB_PICO_STDIO=1 -DLIB_PICO_STDIO_UART=1 -DLIB_PICO_STDIO_USB=1 -DLIB_PICO_STDLIB=1 -DLIB_PICO_SYNC=1 -DLIB_PICO_SYNC_CRITICAL_SECTION=1 -DLIB_PI
CO_SYNC_MUTEX=1 -DLIB_PICO_SYNC_SEM=1 -DLIB_PICO_TIME=1 -DLIB_PICO_UNIQUE_ID=1 -DLIB_PICO_UTIL=1 -DLIB_TINYUSB_BOARD=1 -DLIB_TINYUSB_DEVICE=1 -DPICO -DPICO_BOARD=\"pico_w\" -DPICO_BUILD=1 -DP
ICO_CMAKE_BUILD_TYPE=\"Release\" -DPICO_COPY_TO_RAM=0 -DPICO_CXX_ENABLE_EXCEPTIONS=0 -DPICO_NO_FLASH=0 -DPICO_NO_HARDWARE=0 -DPICO_ON_DEVICE=1 -DPICO_PROGRAM_NAME=\"BigBlinkingButton\" -DPICO
_PROGRAM_VERSION_STRING=\"0.1\" -DPICO_RP2040_USB_DEVICE_UFRAME_FIX=1 -DPICO_TARGET_NAME=\"BigBlinkingButton\" -DPICO_USE_BLOCKED_RAM=0 -I/Users/mads/code/microcontroller-projects/BigBlinking
Button -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/.. -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include -I/Users/mads/code/microcontroller-projects/BigBl
inkingButton/include/arduino-pico/cores/rp2040 -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api -I/Users/mads/picosdk/src/rp2_common/pico
_stdio_usb/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio/include -I/Users/mads/picosdk/src/rp2_common/pico_printf/include -I/Users/mads/picosdk/src/common/pico_time/include -I/Users
/mads/picosdk/src/rp2_common/hardware_timer/include -I/Users/mads/picosdk/src/common/pico_base/include -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/build/generated/pico_base 
-I/Users/mads/picosdk/src/boards/include -I/Users/mads/picosdk/src/rp2_common/pico_platform/include -I/Users/mads/picosdk/src/rp2040/hardware_regs/include -I/Users/mads/picosdk/src/rp2_common
/hardware_base/include -I/Users/mads/picosdk/src/rp2040/hardware_structs/include -I/Users/mads/picosdk/src/rp2_common/hardware_claim/include -I/Users/mads/picosdk/src/rp2_common/hardware_sync
/include -I/Users/mads/picosdk/src/rp2_common/hardware_irq/include -I/Users/mads/picosdk/src/common/pico_sync/include -I/Users/mads/picosdk/src/common/pico_util/include -I/Users/mads/picosdk/
src/rp2_common/pico_unique_id/include -I/Users/mads/picosdk/src/rp2_common/hardware_flash/include -I/Users/mads/picosdk/src/rp2_common/pico_bootrom/include -I/Users/mads/picosdk/src/common/pi
co_usb_reset_interface/include -I/Users/mads/picosdk/lib/tinyusb/src -I/Users/mads/picosdk/lib/tinyusb/src/common -I/Users/mads/picosdk/lib/tinyusb/hw -I/Users/mads/picosdk/src/rp2_common/har
dware_resets/include -I/Users/mads/picosdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include -I/Users/mads/picosdk/src/rp2_common/hardware_gpio/include -I/Users/mads/picosdk/src/c
ommon/pico_stdlib/include -I/Users/mads/picosdk/src/rp2_common/hardware_uart/include -I/Users/mads/picosdk/src/rp2_common/hardware_clocks/include -I/Users/mads/picosdk/src/rp2_common/hardware
_pll/include -I/Users/mads/picosdk/src/rp2_common/hardware_vreg/include -I/Users/mads/picosdk/src/rp2_common/hardware_watchdog/include -I/Users/mads/picosdk/src/rp2_common/hardware_xosc/inclu
de -I/Users/mads/picosdk/src/rp2_common/hardware_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_runtime/include -I/Users/mads/picosdk/src/common/pico_bit_ops/include -I/Users/mads/
picosdk/src/common/pico_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_double/include -I/Users/mads/picosdk/src/rp2_common/pico_float/include -I/Users/mads/picosdk/src/rp2_common/p
ico_malloc/include -I/Users/mads/picosdk/src/common/pico_binary_info/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio_uart/include -I/Users/mads/picosdk/src/rp2_common/pico_int64_ops/i
nclude -I/Users/mads/picosdk/src/rp2_common/pico_mem_ops/include -I/Users/mads/picosdk/src/rp2_common/boot_stage2/include -I/Users/mads/picosdk/src/rp2_common/pico_multicore/include -I/Users/
mads/picosdk/src/rp2_common/hardware_pwm/include -I/Users/mads/picosdk/src/rp2_common/hardware_adc/include -I/Users/mads/picosdk/src/rp2_common/hardware_spi/include -I/Users/mads/picosdk/src/
rp2_common/hardware_i2c/include -I/Users/mads/picosdk/src/rp2_common/hardware_pio/include -I/Users/mads/picosdk/src/rp2_common/hardware_dma/include -isystem /Users/mads/.cache/CPM/picodebounc
ebutton/7ebe22768bda19fd9eca73af44c3556c52ccf0b9/include -mcpu=cortex-m0plus -mthumb -O3 -DNDEBUG -ffunction-sections -fdata-sections -fno-exceptions -fno-unwind-tables -fno-rtti -fno-use-cxa
-atexit -std=gnu++2a -MD -MT CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/IPAddress.cpp.obj -MF CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/ap
i/IPAddress.cpp.obj.d -o CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/IPAddress.cpp.obj -c /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduin
o-pico/cores/rp2040/api/IPAddress.cpp
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/ArduinoAPI.h:30,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/ArduinoAPI.h:2,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/Arduino.h:28,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/IPAddress.cpp:20,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/IPAddress.cpp:1:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/IPAddress.h:26:10: fatal error: lwip/init.h: No such file or dir
ectory
   26 | #include <lwip/init.h>
      |          ^~~~~~~~~~~~~
compilation terminated.
[8/77] Building CXX object CMakeFiles/BigBlinkingButton.dir/BigBlinkingButton.cpp.obj
FAILED: CMakeFiles/BigBlinkingButton.dir/BigBlinkingButton.cpp.obj 
/opt/homebrew/bin/arm-none-eabi-g++ -DARDUINO=183 -DARDUINO_ARCH_RP2040 -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DCFG_TUSB_OS=OPT_OS_PICO -DLIB_PICO_BIT_OPS=1 -DLIB_PICO_BIT_OPS_PICO=1 -DLIB_PICO_DIVID
ER=1 -DLIB_PICO_DIVIDER_HARDWARE=1 -DLIB_PICO_DOUBLE=1 -DLIB_PICO_DOUBLE_PICO=1 -DLIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1 -DLIB_PICO_FLOAT=1 -DLIB_PICO_FLOAT_PICO=1 -DLIB_PICO_INT64_OPS=
1 -DLIB_PICO_INT64_OPS_PICO=1 -DLIB_PICO_MALLOC=1 -DLIB_PICO_MEM_OPS=1 -DLIB_PICO_MEM_OPS_PICO=1 -DLIB_PICO_MULTICORE=1 -DLIB_PICO_PLATFORM=1 -DLIB_PICO_PRINTF=1 -DLIB_PICO_PRINTF_PICO=1 -DLI
B_PICO_RUNTIME=1 -DLIB_PICO_STANDARD_LINK=1 -DLIB_PICO_STDIO=1 -DLIB_PICO_STDIO_UART=1 -DLIB_PICO_STDIO_USB=1 -DLIB_PICO_STDLIB=1 -DLIB_PICO_SYNC=1 -DLIB_PICO_SYNC_CRITICAL_SECTION=1 -DLIB_PI
CO_SYNC_MUTEX=1 -DLIB_PICO_SYNC_SEM=1 -DLIB_PICO_TIME=1 -DLIB_PICO_UNIQUE_ID=1 -DLIB_PICO_UTIL=1 -DLIB_TINYUSB_BOARD=1 -DLIB_TINYUSB_DEVICE=1 -DPICO -DPICO_BOARD=\"pico_w\" -DPICO_BUILD=1 -DP
ICO_CMAKE_BUILD_TYPE=\"Release\" -DPICO_COPY_TO_RAM=0 -DPICO_CXX_ENABLE_EXCEPTIONS=0 -DPICO_NO_FLASH=0 -DPICO_NO_HARDWARE=0 -DPICO_ON_DEVICE=1 -DPICO_PROGRAM_NAME=\"BigBlinkingButton\" -DPICO
_PROGRAM_VERSION_STRING=\"0.1\" -DPICO_RP2040_USB_DEVICE_UFRAME_FIX=1 -DPICO_TARGET_NAME=\"BigBlinkingButton\" -DPICO_USE_BLOCKED_RAM=0 -I/Users/mads/code/microcontroller-projects/BigBlinking
Button -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/.. -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include -I/Users/mads/code/microcontroller-projects/BigBl
inkingButton/include/arduino-pico/cores/rp2040 -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api -I/Users/mads/picosdk/src/rp2_common/pico
_stdio_usb/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio/include -I/Users/mads/picosdk/src/rp2_common/pico_printf/include -I/Users/mads/picosdk/src/common/pico_time/include -I/Users
/mads/picosdk/src/rp2_common/hardware_timer/include -I/Users/mads/picosdk/src/common/pico_base/include -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/build/generated/pico_base 
-I/Users/mads/picosdk/src/boards/include -I/Users/mads/picosdk/src/rp2_common/pico_platform/include -I/Users/mads/picosdk/src/rp2040/hardware_regs/include -I/Users/mads/picosdk/src/rp2_common
/hardware_base/include -I/Users/mads/picosdk/src/rp2040/hardware_structs/include -I/Users/mads/picosdk/src/rp2_common/hardware_claim/include -I/Users/mads/picosdk/src/rp2_common/hardware_sync
/include -I/Users/mads/picosdk/src/rp2_common/hardware_irq/include -I/Users/mads/picosdk/src/common/pico_sync/include -I/Users/mads/picosdk/src/common/pico_util/include -I/Users/mads/picosdk/
src/rp2_common/pico_unique_id/include -I/Users/mads/picosdk/src/rp2_common/hardware_flash/include -I/Users/mads/picosdk/src/rp2_common/pico_bootrom/include -I/Users/mads/picosdk/src/common/pi
co_usb_reset_interface/include -I/Users/mads/picosdk/lib/tinyusb/src -I/Users/mads/picosdk/lib/tinyusb/src/common -I/Users/mads/picosdk/lib/tinyusb/hw -I/Users/mads/picosdk/src/rp2_common/har
dware_resets/include -I/Users/mads/picosdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include -I/Users/mads/picosdk/src/rp2_common/hardware_gpio/include -I/Users/mads/picosdk/src/c
ommon/pico_stdlib/include -I/Users/mads/picosdk/src/rp2_common/hardware_uart/include -I/Users/mads/picosdk/src/rp2_common/hardware_clocks/include -I/Users/mads/picosdk/src/rp2_common/hardware
_pll/include -I/Users/mads/picosdk/src/rp2_common/hardware_vreg/include -I/Users/mads/picosdk/src/rp2_common/hardware_watchdog/include -I/Users/mads/picosdk/src/rp2_common/hardware_xosc/inclu
de -I/Users/mads/picosdk/src/rp2_common/hardware_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_runtime/include -I/Users/mads/picosdk/src/common/pico_bit_ops/include -I/Users/mads/
picosdk/src/common/pico_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_double/include -I/Users/mads/picosdk/src/rp2_common/pico_float/include -I/Users/mads/picosdk/src/rp2_common/p
ico_malloc/include -I/Users/mads/picosdk/src/common/pico_binary_info/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio_uart/include -I/Users/mads/picosdk/src/rp2_common/pico_int64_ops/i
nclude -I/Users/mads/picosdk/src/rp2_common/pico_mem_ops/include -I/Users/mads/picosdk/src/rp2_common/boot_stage2/include -I/Users/mads/picosdk/src/rp2_common/pico_multicore/include -I/Users/
mads/picosdk/src/rp2_common/hardware_pwm/include -I/Users/mads/picosdk/src/rp2_common/hardware_adc/include -I/Users/mads/picosdk/src/rp2_common/hardware_spi/include -I/Users/mads/picosdk/src/
rp2_common/hardware_i2c/include -I/Users/mads/picosdk/src/rp2_common/hardware_pio/include -I/Users/mads/picosdk/src/rp2_common/hardware_dma/include -isystem /Users/mads/.cache/CPM/picodebounc
ebutton/7ebe22768bda19fd9eca73af44c3556c52ccf0b9/include -mcpu=cortex-m0plus -mthumb -O3 -DNDEBUG -ffunction-sections -fdata-sections -fno-exceptions -fno-unwind-tables -fno-rtti -fno-use-cxa
-atexit -std=gnu++2a -MD -MT CMakeFiles/BigBlinkingButton.dir/BigBlinkingButton.cpp.obj -MF CMakeFiles/BigBlinkingButton.dir/BigBlinkingButton.cpp.obj.d -o CMakeFiles/BigBlinkingButton.dir/Bi
gBlinkingButton.cpp.obj -c /Users/mads/code/microcontroller-projects/BigBlinkingButton/BigBlinkingButton.cpp
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/ArduinoAPI.h:30,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/ArduinoAPI.h:2,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/Arduino.h:28,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/BigBlinkingButton.cpp:1:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/IPAddress.h:26:10: fatal error: lwip/init.h: No such file or dir
ectory
   26 | #include <lwip/init.h>
      |          ^~~~~~~~~~~~~
compilation terminated.
[9/77] Building CXX object CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/IPAddress.cpp.obj
FAILED: CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/IPAddress.cpp.obj 
/opt/homebrew/bin/arm-none-eabi-g++ -DARDUINO=183 -DARDUINO_ARCH_RP2040 -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DCFG_TUSB_OS=OPT_OS_PICO -DLIB_PICO_BIT_OPS=1 -DLIB_PICO_BIT_OPS_PICO=1 -DLIB_PICO_DIVID
ER=1 -DLIB_PICO_DIVIDER_HARDWARE=1 -DLIB_PICO_DOUBLE=1 -DLIB_PICO_DOUBLE_PICO=1 -DLIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1 -DLIB_PICO_FLOAT=1 -DLIB_PICO_FLOAT_PICO=1 -DLIB_PICO_INT64_OPS=
1 -DLIB_PICO_INT64_OPS_PICO=1 -DLIB_PICO_MALLOC=1 -DLIB_PICO_MEM_OPS=1 -DLIB_PICO_MEM_OPS_PICO=1 -DLIB_PICO_MULTICORE=1 -DLIB_PICO_PLATFORM=1 -DLIB_PICO_PRINTF=1 -DLIB_PICO_PRINTF_PICO=1 -DLI
B_PICO_RUNTIME=1 -DLIB_PICO_STANDARD_LINK=1 -DLIB_PICO_STDIO=1 -DLIB_PICO_STDIO_UART=1 -DLIB_PICO_STDIO_USB=1 -DLIB_PICO_STDLIB=1 -DLIB_PICO_SYNC=1 -DLIB_PICO_SYNC_CRITICAL_SECTION=1 -DLIB_PI
CO_SYNC_MUTEX=1 -DLIB_PICO_SYNC_SEM=1 -DLIB_PICO_TIME=1 -DLIB_PICO_UNIQUE_ID=1 -DLIB_PICO_UTIL=1 -DLIB_TINYUSB_BOARD=1 -DLIB_TINYUSB_DEVICE=1 -DPICO -DPICO_BOARD=\"pico_w\" -DPICO_BUILD=1 -DP
ICO_CMAKE_BUILD_TYPE=\"Release\" -DPICO_COPY_TO_RAM=0 -DPICO_CXX_ENABLE_EXCEPTIONS=0 -DPICO_NO_FLASH=0 -DPICO_NO_HARDWARE=0 -DPICO_ON_DEVICE=1 -DPICO_PROGRAM_NAME=\"BigBlinkingButton\" -DPICO
_PROGRAM_VERSION_STRING=\"0.1\" -DPICO_RP2040_USB_DEVICE_UFRAME_FIX=1 -DPICO_TARGET_NAME=\"BigBlinkingButton\" -DPICO_USE_BLOCKED_RAM=0 -I/Users/mads/code/microcontroller-projects/BigBlinking
Button -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/.. -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include -I/Users/mads/code/microcontroller-projects/BigBl
inkingButton/include/arduino-pico/cores/rp2040 -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api -I/Users/mads/picosdk/src/rp2_common/pico
_stdio_usb/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio/include -I/Users/mads/picosdk/src/rp2_common/pico_printf/include -I/Users/mads/picosdk/src/common/pico_time/include -I/Users
/mads/picosdk/src/rp2_common/hardware_timer/include -I/Users/mads/picosdk/src/common/pico_base/include -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/build/generated/pico_base 
-I/Users/mads/picosdk/src/boards/include -I/Users/mads/picosdk/src/rp2_common/pico_platform/include -I/Users/mads/picosdk/src/rp2040/hardware_regs/include -I/Users/mads/picosdk/src/rp2_common
/hardware_base/include -I/Users/mads/picosdk/src/rp2040/hardware_structs/include -I/Users/mads/picosdk/src/rp2_common/hardware_claim/include -I/Users/mads/picosdk/src/rp2_common/hardware_sync
/include -I/Users/mads/picosdk/src/rp2_common/hardware_irq/include -I/Users/mads/picosdk/src/common/pico_sync/include -I/Users/mads/picosdk/src/common/pico_util/include -I/Users/mads/picosdk/
src/rp2_common/pico_unique_id/include -I/Users/mads/picosdk/src/rp2_common/hardware_flash/include -I/Users/mads/picosdk/src/rp2_common/pico_bootrom/include -I/Users/mads/picosdk/src/common/pi
co_usb_reset_interface/include -I/Users/mads/picosdk/lib/tinyusb/src -I/Users/mads/picosdk/lib/tinyusb/src/common -I/Users/mads/picosdk/lib/tinyusb/hw -I/Users/mads/picosdk/src/rp2_common/har
dware_resets/include -I/Users/mads/picosdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include -I/Users/mads/picosdk/src/rp2_common/hardware_gpio/include -I/Users/mads/picosdk/src/c
ommon/pico_stdlib/include -I/Users/mads/picosdk/src/rp2_common/hardware_uart/include -I/Users/mads/picosdk/src/rp2_common/hardware_clocks/include -I/Users/mads/picosdk/src/rp2_common/hardware
_pll/include -I/Users/mads/picosdk/src/rp2_common/hardware_vreg/include -I/Users/mads/picosdk/src/rp2_common/hardware_watchdog/include -I/Users/mads/picosdk/src/rp2_common/hardware_xosc/inclu
de -I/Users/mads/picosdk/src/rp2_common/hardware_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_runtime/include -I/Users/mads/picosdk/src/common/pico_bit_ops/include -I/Users/mads/
picosdk/src/common/pico_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_double/include -I/Users/mads/picosdk/src/rp2_common/pico_float/include -I/Users/mads/picosdk/src/rp2_common/p
ico_malloc/include -I/Users/mads/picosdk/src/common/pico_binary_info/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio_uart/include -I/Users/mads/picosdk/src/rp2_common/pico_int64_ops/i
nclude -I/Users/mads/picosdk/src/rp2_common/pico_mem_ops/include -I/Users/mads/picosdk/src/rp2_common/boot_stage2/include -I/Users/mads/picosdk/src/rp2_common/pico_multicore/include -I/Users/
mads/picosdk/src/rp2_common/hardware_pwm/include -I/Users/mads/picosdk/src/rp2_common/hardware_adc/include -I/Users/mads/picosdk/src/rp2_common/hardware_spi/include -I/Users/mads/picosdk/src/
rp2_common/hardware_i2c/include -I/Users/mads/picosdk/src/rp2_common/hardware_pio/include -I/Users/mads/picosdk/src/rp2_common/hardware_dma/include -isystem /Users/mads/.cache/CPM/picodebounc
ebutton/7ebe22768bda19fd9eca73af44c3556c52ccf0b9/include -mcpu=cortex-m0plus -mthumb -O3 -DNDEBUG -ffunction-sections -fdata-sections -fno-exceptions -fno-unwind-tables -fno-rtti -fno-use-cxa
-atexit -std=gnu++2a -MD -MT CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/IPAddress.cpp.obj -MF CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-
API/api/IPAddress.cpp.obj.d -o CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/IPAddress.cpp.obj -c /Users/mads/code/microcontroller-projects/BigBlinkingButton/inclu
de/arduino-pico/ArduinoCore-API/api/IPAddress.cpp
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/ArduinoAPI.h:30,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/ArduinoAPI.h:2,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/Arduino.h:28,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/IPAddress.cpp:20:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/IPAddress.h:26:10: fatal error: lwip/init.h: No such file or dir
ectory
   26 | #include <lwip/init.h>
      |          ^~~~~~~~~~~~~
compilation terminated.
[10/77] Building CXX object CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/String.cpp.obj
FAILED: CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/String.cpp.obj 
/opt/homebrew/bin/arm-none-eabi-g++ -DARDUINO=183 -DARDUINO_ARCH_RP2040 -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DCFG_TUSB_OS=OPT_OS_PICO -DLIB_PICO_BIT_OPS=1 -DLIB_PICO_BIT_OPS_PICO=1 -DLIB_PICO_DIVID
ER=1 -DLIB_PICO_DIVIDER_HARDWARE=1 -DLIB_PICO_DOUBLE=1 -DLIB_PICO_DOUBLE_PICO=1 -DLIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1 -DLIB_PICO_FLOAT=1 -DLIB_PICO_FLOAT_PICO=1 -DLIB_PICO_INT64_OPS=
1 -DLIB_PICO_INT64_OPS_PICO=1 -DLIB_PICO_MALLOC=1 -DLIB_PICO_MEM_OPS=1 -DLIB_PICO_MEM_OPS_PICO=1 -DLIB_PICO_MULTICORE=1 -DLIB_PICO_PLATFORM=1 -DLIB_PICO_PRINTF=1 -DLIB_PICO_PRINTF_PICO=1 -DLI
B_PICO_RUNTIME=1 -DLIB_PICO_STANDARD_LINK=1 -DLIB_PICO_STDIO=1 -DLIB_PICO_STDIO_UART=1 -DLIB_PICO_STDIO_USB=1 -DLIB_PICO_STDLIB=1 -DLIB_PICO_SYNC=1 -DLIB_PICO_SYNC_CRITICAL_SECTION=1 -DLIB_PI
CO_SYNC_MUTEX=1 -DLIB_PICO_SYNC_SEM=1 -DLIB_PICO_TIME=1 -DLIB_PICO_UNIQUE_ID=1 -DLIB_PICO_UTIL=1 -DLIB_TINYUSB_BOARD=1 -DLIB_TINYUSB_DEVICE=1 -DPICO -DPICO_BOARD=\"pico_w\" -DPICO_BUILD=1 -DP
ICO_CMAKE_BUILD_TYPE=\"Release\" -DPICO_COPY_TO_RAM=0 -DPICO_CXX_ENABLE_EXCEPTIONS=0 -DPICO_NO_FLASH=0 -DPICO_NO_HARDWARE=0 -DPICO_ON_DEVICE=1 -DPICO_PROGRAM_NAME=\"BigBlinkingButton\" -DPICO
_PROGRAM_VERSION_STRING=\"0.1\" -DPICO_RP2040_USB_DEVICE_UFRAME_FIX=1 -DPICO_TARGET_NAME=\"BigBlinkingButton\" -DPICO_USE_BLOCKED_RAM=0 -I/Users/mads/code/microcontroller-projects/BigBlinking
Button -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/.. -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include -I/Users/mads/code/microcontroller-projects/BigBl
inkingButton/include/arduino-pico/cores/rp2040 -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api -I/Users/mads/picosdk/src/rp2_common/pico
_stdio_usb/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio/include -I/Users/mads/picosdk/src/rp2_common/pico_printf/include -I/Users/mads/picosdk/src/common/pico_time/include -I/Users
/mads/picosdk/src/rp2_common/hardware_timer/include -I/Users/mads/picosdk/src/common/pico_base/include -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/build/generated/pico_base 
-I/Users/mads/picosdk/src/boards/include -I/Users/mads/picosdk/src/rp2_common/pico_platform/include -I/Users/mads/picosdk/src/rp2040/hardware_regs/include -I/Users/mads/picosdk/src/rp2_common
/hardware_base/include -I/Users/mads/picosdk/src/rp2040/hardware_structs/include -I/Users/mads/picosdk/src/rp2_common/hardware_claim/include -I/Users/mads/picosdk/src/rp2_common/hardware_sync
/include -I/Users/mads/picosdk/src/rp2_common/hardware_irq/include -I/Users/mads/picosdk/src/common/pico_sync/include -I/Users/mads/picosdk/src/common/pico_util/include -I/Users/mads/picosdk/
src/rp2_common/pico_unique_id/include -I/Users/mads/picosdk/src/rp2_common/hardware_flash/include -I/Users/mads/picosdk/src/rp2_common/pico_bootrom/include -I/Users/mads/picosdk/src/common/pi
co_usb_reset_interface/include -I/Users/mads/picosdk/lib/tinyusb/src -I/Users/mads/picosdk/lib/tinyusb/src/common -I/Users/mads/picosdk/lib/tinyusb/hw -I/Users/mads/picosdk/src/rp2_common/har
dware_resets/include -I/Users/mads/picosdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include -I/Users/mads/picosdk/src/rp2_common/hardware_gpio/include -I/Users/mads/picosdk/src/c
ommon/pico_stdlib/include -I/Users/mads/picosdk/src/rp2_common/hardware_uart/include -I/Users/mads/picosdk/src/rp2_common/hardware_clocks/include -I/Users/mads/picosdk/src/rp2_common/hardware
_pll/include -I/Users/mads/picosdk/src/rp2_common/hardware_vreg/include -I/Users/mads/picosdk/src/rp2_common/hardware_watchdog/include -I/Users/mads/picosdk/src/rp2_common/hardware_xosc/inclu
de -I/Users/mads/picosdk/src/rp2_common/hardware_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_runtime/include -I/Users/mads/picosdk/src/common/pico_bit_ops/include -I/Users/mads/
picosdk/src/common/pico_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_double/include -I/Users/mads/picosdk/src/rp2_common/pico_float/include -I/Users/mads/picosdk/src/rp2_common/p
ico_malloc/include -I/Users/mads/picosdk/src/common/pico_binary_info/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio_uart/include -I/Users/mads/picosdk/src/rp2_common/pico_int64_ops/i
nclude -I/Users/mads/picosdk/src/rp2_common/pico_mem_ops/include -I/Users/mads/picosdk/src/rp2_common/boot_stage2/include -I/Users/mads/picosdk/src/rp2_common/pico_multicore/include -I/Users/
mads/picosdk/src/rp2_common/hardware_pwm/include -I/Users/mads/picosdk/src/rp2_common/hardware_adc/include -I/Users/mads/picosdk/src/rp2_common/hardware_spi/include -I/Users/mads/picosdk/src/
rp2_common/hardware_i2c/include -I/Users/mads/picosdk/src/rp2_common/hardware_pio/include -I/Users/mads/picosdk/src/rp2_common/hardware_dma/include -isystem /Users/mads/.cache/CPM/picodebounc
ebutton/7ebe22768bda19fd9eca73af44c3556c52ccf0b9/include -mcpu=cortex-m0plus -mthumb -O3 -DNDEBUG -ffunction-sections -fdata-sections -fno-exceptions -fno-unwind-tables -fno-rtti -fno-use-cxa
-atexit -std=gnu++2a -MD -MT CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/String.cpp.obj -MF CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/S
tring.cpp.obj.d -o CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/String.cpp.obj -c /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/co
res/rp2040/api/String.cpp
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/String.cpp:1:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In constructor 'arduino::String::String(const char*)
':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:45:23: error: 'strlen' was not declared in this scope
   45 |  if (cstr) copy(cstr, strlen(cstr));
      |                       ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:28:1: note: 'strlen' is defined in header '<cstring>'
; did you forget to '#include <cstring>'?
   27 | #include <float.h>
  +++ |+#include <cstring>
   28 | 
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'arduino::String& arduino::String
::copy(const char*, unsigned int)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:201:2: error: 'memcpy' was not declared in this scope
  201 |  memcpy(buffer, cstr, length);
      |  ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:201:2: note: 'memcpy' is defined in header '<cstring>
'; did you forget to '#include <cstring>'?
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.h:33,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:22,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/String.cpp:1:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'arduino::String& arduino::String
::copy(const arduino::__FlashStringHelper*, unsigned int)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:63:29: error: 'strcpy' was no
t declared in this scope
   63 | #define strcpy_P(dest, src) strcpy((dest), (src))
      |                             ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:213:2: note: in expansion of macro 'strcpy_P'
  213 |  strcpy_P(buffer, (PGM_P)pstr);
      |  ^~~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:63:29: note: 'strcpy' is defi
ned in header '<cstring>'; did you forget to '#include <cstring>'?
   63 | #define strcpy_P(dest, src) strcpy((dest), (src))
      |                             ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:213:2: note: in expansion of macro 'strcpy_P'
  213 |  strcpy_P(buffer, (PGM_P)pstr);
      |  ^~~~~~~~
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/String.cpp:1:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'void arduino::String::move(ardui
no::String&)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:222:4: error: 'memcpy' was not declared in this scope
  222 |    memcpy(buffer, rhs.buffer, rhs.len);
      |    ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:222:4: note: 'memcpy' is defined in header '<cstring>
'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'arduino::String& arduino::String
::operator=(const char*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:266:23: error: 'strlen' was not declared in this scop
e
  266 |  if (cstr) copy(cstr, strlen(cstr));
      |                       ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:266:23: note: 'strlen' is defined in header '<cstring
>'; did you forget to '#include <cstring>'?
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.h:33,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:22,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/String.cpp:1:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'arduino::String& arduino::String
::operator=(const arduino::__FlashStringHelper*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:69:21: error: 'strlen' was no
t declared in this scope
   69 | #define strlen_P(a) strlen((a))
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:274:23: note: in expansion of macro 'strlen_P'
  274 |  if (pstr) copy(pstr, strlen_P((PGM_P)pstr));
      |                       ^~~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:69:21: note: 'strlen' is defi
ned in header '<cstring>'; did you forget to '#include <cstring>'?
   69 | #define strlen_P(a) strlen((a))
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:274:23: note: in expansion of macro 'strlen_P'
  274 |  if (pstr) copy(pstr, strlen_P((PGM_P)pstr));
      |                       ^~~~~~~~
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/String.cpp:1:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'unsigned char arduino::String::c
oncat(const char*, unsigned int)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:295:2: error: 'memcpy' was not declared in this scope
  295 |  memcpy(buffer + len, cstr, length);
      |  ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:295:2: note: 'memcpy' is defined in header '<cstring>
'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'unsigned char arduino::String::c
oncat(const char*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:304:22: error: 'strlen' was not declared in this scop
e
  304 |  return concat(cstr, strlen(cstr));
      |                      ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:304:22: note: 'strlen' is defined in header '<cstring
>'; did you forget to '#include <cstring>'?
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.h:33,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:22,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/String.cpp:1:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'unsigned char arduino::String::c
oncat(const arduino::__FlashStringHelper*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:69:21: error: 'strlen' was no
t declared in this scope
   69 | #define strlen_P(a) strlen((a))
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:364:15: note: in expansion of macro 'strlen_P'
  364 |  int length = strlen_P((const char *) str);
      |               ^~~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:69:21: note: 'strlen' is defi
ned in header '<cstring>'; did you forget to '#include <cstring>'?
   69 | #define strlen_P(a) strlen((a))
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:364:15: note: in expansion of macro 'strlen_P'
  364 |  int length = strlen_P((const char *) str);
      |               ^~~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:63:29: error: 'strcpy' was no
t declared in this scope
   63 | #define strcpy_P(dest, src) strcpy((dest), (src))
      |                             ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:368:2: note: in expansion of macro 'strcpy_P'
  368 |  strcpy_P(buffer + len, (const char *) str);
      |  ^~~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:63:29: note: 'strcpy' is defi
ned in header '<cstring>'; did you forget to '#include <cstring>'?
   63 | #define strcpy_P(dest, src) strcpy((dest), (src))
      |                             ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:368:2: note: in expansion of macro 'strcpy_P'
  368 |  strcpy_P(buffer + len, (const char *) str);
      |  ^~~~~~~~
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/String.cpp:1:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'int arduino::String::compareTo(c
onst arduino::String&) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:465:9: error: 'strcmp' was not declared in this scope
  465 |  return strcmp(buffer, s.buffer);
      |         ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:465:9: note: 'strcmp' is defined in header '<cstring>
'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'int arduino::String::compareTo(c
onst char*) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:475:9: error: 'strcmp' was not declared in this scope
  475 |  return strcmp(buffer, cstr);
      |         ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:475:9: note: 'strcmp' is defined in header '<cstring>
'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'unsigned char arduino::String::e
quals(const char*) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:487:9: error: 'strcmp' was not declared in this scope
  487 |  return strcmp(buffer, cstr) == 0;
      |         ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:487:9: note: 'strcmp' is defined in header '<cstring>
'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'unsigned char arduino::String::s
tartsWith(const arduino::String&, unsigned int) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:512:9: error: 'strncmp' was not declared in this scop
e
  512 |  return strncmp( &buffer[offset], s2.buffer, s2.len ) == 0;
      |         ^~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:512:9: note: 'strncmp' is defined in header '<cstring
>'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'unsigned char arduino::String::e
ndsWith(const arduino::String&) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:518:9: error: 'strcmp' was not declared in this scope
  518 |  return strcmp(&buffer[len - s2.len], s2.buffer) == 0;
      |         ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:518:9: note: 'strcmp' is defined in header '<cstring>
'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'void arduino::String::getBytes(u
nsigned char*, unsigned int, unsigned int) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:560:2: error: 'strncpy' was not declared in this scop
e
  560 |  strncpy((char *)buf, buffer + index, n);
      |  ^~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:560:2: note: 'strncpy' is defined in header '<cstring
>'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'int arduino::String::indexOf(cha
r, unsigned int) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:576:21: error: 'strchr' was not declared in this scop
e
  576 |  const char* temp = strchr(buffer + fromIndex, ch);
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:576:21: note: 'strchr' is defined in header '<cstring
>'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'int arduino::String::indexOf(con
st arduino::String&, unsigned int) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:589:22: error: 'strstr' was not declared in this scop
e
  589 |  const char *found = strstr(buffer + fromIndex, s2.buffer);
      |                      ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:589:22: note: 'strstr' is defined in header '<cstring
>'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'int arduino::String::lastIndexOf
(char, unsigned int) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:604:15: error: 'strrchr' was not declared in this sco
pe
  604 |  char* temp = strrchr( buffer, ch );
      |               ^~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:604:15: note: 'strrchr' is defined in header '<cstrin
g>'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'int arduino::String::lastIndexOf
(const arduino::String&, unsigned int) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:621:7: error: 'strstr' was not declared in this scope
  621 |   p = strstr(p, s2.buffer);
      |       ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:621:7: note: 'strstr' is defined in header '<cstring>
'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'void arduino::String::replace(co
nst arduino::String&, const arduino::String&)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:661:21: error: 'strstr' was not declared in this scop
e
  661 |   while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:661:21: note: 'strstr' is defined in header '<cstring
>'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:662:4: error: 'memcpy' was not declared in this scope
  662 |    memcpy(foundAt, replace.buffer, replace.len);
      |    ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:662:4: note: 'memcpy' is defined in header '<cstring>
'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:667:21: error: 'strstr' was not declared in this scop
e
  667 |   while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:667:21: note: 'strstr' is defined in header '<cstring
>'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:676:4: error: 'memmove' was not declared in this scop
e
  676 |    memmove(readFrom - diff, readFrom, len - (readFrom - buffer));
      |    ^~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:676:4: note: 'memmove' is defined in header '<cstring
>'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:679:4: error: 'memcpy' was not declared in this scope
  679 |    memcpy(buffer + index, replace.buffer, replace.len);
      |    ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:679:4: note: 'memcpy' is defined in header '<cstring>
'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:684:21: error: 'strstr' was not declared in this scop
e
  684 |   while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:684:21: note: 'strstr' is defined in header '<cstring
>'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:693:4: error: 'memmove' was not declared in this scop
e
  693 |    memmove(readFrom + diff, readFrom, len - (readFrom - buffer));
      |    ^~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:693:4: note: 'memmove' is defined in header '<cstring
>'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:696:4: error: 'memcpy' was not declared in this scope
  696 |    memcpy(buffer + index, replace.buffer, replace.len);
      |    ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:696:4: note: 'memcpy' is defined in header '<cstring>
'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'void arduino::String::remove(uns
igned int, unsigned int)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:715:2: error: 'memmove' was not declared in this scop
e
  715 |  memmove(writeTo, buffer + index + count,len - index);
      |  ^~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:715:2: note: 'memmove' is defined in header '<cstring
>'; did you forget to '#include <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp: In member function 'void arduino::String::trim()':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:743:22: error: 'memmove' was not declared in this sco
pe
  743 |  if (begin > buffer) memmove(buffer, begin, len);
      |                      ^~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/String.cpp:743:22: note: 'memmove' is defined in header '<cstrin
g>'; did you forget to '#include <cstring>'?
[11/77] Building CXX object CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/String.cpp.obj
FAILED: CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/String.cpp.obj 
/opt/homebrew/bin/arm-none-eabi-g++ -DARDUINO=183 -DARDUINO_ARCH_RP2040 -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DCFG_TUSB_OS=OPT_OS_PICO -DLIB_PICO_BIT_OPS=1 -DLIB_PICO_BIT_OPS_PICO=1 -DLIB_PICO_DIVID
ER=1 -DLIB_PICO_DIVIDER_HARDWARE=1 -DLIB_PICO_DOUBLE=1 -DLIB_PICO_DOUBLE_PICO=1 -DLIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1 -DLIB_PICO_FLOAT=1 -DLIB_PICO_FLOAT_PICO=1 -DLIB_PICO_INT64_OPS=
1 -DLIB_PICO_INT64_OPS_PICO=1 -DLIB_PICO_MALLOC=1 -DLIB_PICO_MEM_OPS=1 -DLIB_PICO_MEM_OPS_PICO=1 -DLIB_PICO_MULTICORE=1 -DLIB_PICO_PLATFORM=1 -DLIB_PICO_PRINTF=1 -DLIB_PICO_PRINTF_PICO=1 -DLI
B_PICO_RUNTIME=1 -DLIB_PICO_STANDARD_LINK=1 -DLIB_PICO_STDIO=1 -DLIB_PICO_STDIO_UART=1 -DLIB_PICO_STDIO_USB=1 -DLIB_PICO_STDLIB=1 -DLIB_PICO_SYNC=1 -DLIB_PICO_SYNC_CRITICAL_SECTION=1 -DLIB_PI
CO_SYNC_MUTEX=1 -DLIB_PICO_SYNC_SEM=1 -DLIB_PICO_TIME=1 -DLIB_PICO_UNIQUE_ID=1 -DLIB_PICO_UTIL=1 -DLIB_TINYUSB_BOARD=1 -DLIB_TINYUSB_DEVICE=1 -DPICO -DPICO_BOARD=\"pico_w\" -DPICO_BUILD=1 -DP
ICO_CMAKE_BUILD_TYPE=\"Release\" -DPICO_COPY_TO_RAM=0 -DPICO_CXX_ENABLE_EXCEPTIONS=0 -DPICO_NO_FLASH=0 -DPICO_NO_HARDWARE=0 -DPICO_ON_DEVICE=1 -DPICO_PROGRAM_NAME=\"BigBlinkingButton\" -DPICO
_PROGRAM_VERSION_STRING=\"0.1\" -DPICO_RP2040_USB_DEVICE_UFRAME_FIX=1 -DPICO_TARGET_NAME=\"BigBlinkingButton\" -DPICO_USE_BLOCKED_RAM=0 -I/Users/mads/code/microcontroller-projects/BigBlinking
Button -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/.. -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include -I/Users/mads/code/microcontroller-projects/BigBl
inkingButton/include/arduino-pico/cores/rp2040 -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api -I/Users/mads/picosdk/src/rp2_common/pico
_stdio_usb/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio/include -I/Users/mads/picosdk/src/rp2_common/pico_printf/include -I/Users/mads/picosdk/src/common/pico_time/include -I/Users
/mads/picosdk/src/rp2_common/hardware_timer/include -I/Users/mads/picosdk/src/common/pico_base/include -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/build/generated/pico_base 
-I/Users/mads/picosdk/src/boards/include -I/Users/mads/picosdk/src/rp2_common/pico_platform/include -I/Users/mads/picosdk/src/rp2040/hardware_regs/include -I/Users/mads/picosdk/src/rp2_common
/hardware_base/include -I/Users/mads/picosdk/src/rp2040/hardware_structs/include -I/Users/mads/picosdk/src/rp2_common/hardware_claim/include -I/Users/mads/picosdk/src/rp2_common/hardware_sync
/include -I/Users/mads/picosdk/src/rp2_common/hardware_irq/include -I/Users/mads/picosdk/src/common/pico_sync/include -I/Users/mads/picosdk/src/common/pico_util/include -I/Users/mads/picosdk/
src/rp2_common/pico_unique_id/include -I/Users/mads/picosdk/src/rp2_common/hardware_flash/include -I/Users/mads/picosdk/src/rp2_common/pico_bootrom/include -I/Users/mads/picosdk/src/common/pi
co_usb_reset_interface/include -I/Users/mads/picosdk/lib/tinyusb/src -I/Users/mads/picosdk/lib/tinyusb/src/common -I/Users/mads/picosdk/lib/tinyusb/hw -I/Users/mads/picosdk/src/rp2_common/har
dware_resets/include -I/Users/mads/picosdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include -I/Users/mads/picosdk/src/rp2_common/hardware_gpio/include -I/Users/mads/picosdk/src/c
ommon/pico_stdlib/include -I/Users/mads/picosdk/src/rp2_common/hardware_uart/include -I/Users/mads/picosdk/src/rp2_common/hardware_clocks/include -I/Users/mads/picosdk/src/rp2_common/hardware
_pll/include -I/Users/mads/picosdk/src/rp2_common/hardware_vreg/include -I/Users/mads/picosdk/src/rp2_common/hardware_watchdog/include -I/Users/mads/picosdk/src/rp2_common/hardware_xosc/inclu
de -I/Users/mads/picosdk/src/rp2_common/hardware_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_runtime/include -I/Users/mads/picosdk/src/common/pico_bit_ops/include -I/Users/mads/
picosdk/src/common/pico_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_double/include -I/Users/mads/picosdk/src/rp2_common/pico_float/include -I/Users/mads/picosdk/src/rp2_common/p
ico_malloc/include -I/Users/mads/picosdk/src/common/pico_binary_info/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio_uart/include -I/Users/mads/picosdk/src/rp2_common/pico_int64_ops/i
nclude -I/Users/mads/picosdk/src/rp2_common/pico_mem_ops/include -I/Users/mads/picosdk/src/rp2_common/boot_stage2/include -I/Users/mads/picosdk/src/rp2_common/pico_multicore/include -I/Users/
mads/picosdk/src/rp2_common/hardware_pwm/include -I/Users/mads/picosdk/src/rp2_common/hardware_adc/include -I/Users/mads/picosdk/src/rp2_common/hardware_spi/include -I/Users/mads/picosdk/src/
rp2_common/hardware_i2c/include -I/Users/mads/picosdk/src/rp2_common/hardware_pio/include -I/Users/mads/picosdk/src/rp2_common/hardware_dma/include -isystem /Users/mads/.cache/CPM/picodebounc
ebutton/7ebe22768bda19fd9eca73af44c3556c52ccf0b9/include -mcpu=cortex-m0plus -mthumb -O3 -DNDEBUG -ffunction-sections -fdata-sections -fno-exceptions -fno-unwind-tables -fno-rtti -fno-use-cxa
-atexit -std=gnu++2a -MD -MT CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/String.cpp.obj -MF CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API
/api/String.cpp.obj.d -o CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/String.cpp.obj -c /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduin
o-pico/ArduinoCore-API/api/String.cpp
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In constructor 'arduino::String::String(const char*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:45:23: error: 'strlen' was not declared in this scope
   45 |  if (cstr) copy(cstr, strlen(cstr));
      |                       ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:28:1: note: 'strlen' is defined in header '<cstring>'; did you forget to '#incl
ude <cstring>'?
   27 | #include <float.h>
  +++ |+#include <cstring>
   28 | 
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'arduino::String& arduino::String::copy(const char*, unsign
ed int)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:201:2: error: 'memcpy' was not declared in this scope
  201 |  memcpy(buffer, cstr, length);
      |  ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:201:2: note: 'memcpy' is defined in header '<cstring>'; did you forget to '#inc
lude <cstring>'?
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.h:33,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:22:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'arduino::String& arduino::String::copy(const arduino::__Fl
ashStringHelper*, unsigned int)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:63:29: error: 'strcpy' was not declared in this scope
   63 | #define strcpy_P(dest, src) strcpy((dest), (src))
      |                             ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:213:2: note: in expansion of macro 'strcpy_P'
  213 |  strcpy_P(buffer, (PGM_P)pstr);
      |  ^~~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:63:29: note: 'strcpy' is defined in header '<cstring>';
 did you forget to '#include <cstring>'?
   63 | #define strcpy_P(dest, src) strcpy((dest), (src))
      |                             ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:213:2: note: in expansion of macro 'strcpy_P'
  213 |  strcpy_P(buffer, (PGM_P)pstr);
      |  ^~~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'void arduino::String::move(arduino::String&)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:222:4: error: 'memcpy' was not declared in this scope
  222 |    memcpy(buffer, rhs.buffer, rhs.len);
      |    ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:222:4: note: 'memcpy' is defined in header '<cstring>'; did you forget to '#inc
lude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'arduino::String& arduino::String::operator=(const char*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:266:23: error: 'strlen' was not declared in this scope
  266 |  if (cstr) copy(cstr, strlen(cstr));
      |                       ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:266:23: note: 'strlen' is defined in header '<cstring>'; did you forget to '#in
clude <cstring>'?
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.h:33,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:22:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'arduino::String& arduino::String::operator=(const arduino:
:__FlashStringHelper*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:69:21: error: 'strlen' was not declared in this scope
   69 | #define strlen_P(a) strlen((a))
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:274:23: note: in expansion of macro 'strlen_P'
  274 |  if (pstr) copy(pstr, strlen_P((PGM_P)pstr));
      |                       ^~~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:69:21: note: 'strlen' is defined in header '<cstring>';
 did you forget to '#include <cstring>'?
   69 | #define strlen_P(a) strlen((a))
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:274:23: note: in expansion of macro 'strlen_P'
  274 |  if (pstr) copy(pstr, strlen_P((PGM_P)pstr));
      |                       ^~~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'unsigned char arduino::String::concat(const char*, unsigne
d int)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:295:2: error: 'memcpy' was not declared in this scope
  295 |  memcpy(buffer + len, cstr, length);
      |  ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:295:2: note: 'memcpy' is defined in header '<cstring>'; did you forget to '#inc
lude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'unsigned char arduino::String::concat(const char*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:304:22: error: 'strlen' was not declared in this scope
  304 |  return concat(cstr, strlen(cstr));
      |                      ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:304:22: note: 'strlen' is defined in header '<cstring>'; did you forget to '#in
clude <cstring>'?
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.h:33,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:22:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'unsigned char arduino::String::concat(const arduino::__Fla
shStringHelper*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:69:21: error: 'strlen' was not declared in this scope
   69 | #define strlen_P(a) strlen((a))
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:364:15: note: in expansion of macro 'strlen_P'
  364 |  int length = strlen_P((const char *) str);
      |               ^~~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:69:21: note: 'strlen' is defined in header '<cstring>';
 did you forget to '#include <cstring>'?
   69 | #define strlen_P(a) strlen((a))
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:364:15: note: in expansion of macro 'strlen_P'
  364 |  int length = strlen_P((const char *) str);
      |               ^~~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:63:29: error: 'strcpy' was not declared in this scope
   63 | #define strcpy_P(dest, src) strcpy((dest), (src))
      |                             ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:368:2: note: in expansion of macro 'strcpy_P'
  368 |  strcpy_P(buffer + len, (const char *) str);
      |  ^~~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/deprecated-avr-comp/avr/pgmspace.h:63:29: note: 'strcpy' is defined in header '<cstring>';
 did you forget to '#include <cstring>'?
   63 | #define strcpy_P(dest, src) strcpy((dest), (src))
      |                             ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:368:2: note: in expansion of macro 'strcpy_P'
  368 |  strcpy_P(buffer + len, (const char *) str);
      |  ^~~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'int arduino::String::compareTo(const arduino::String&) con
st':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:465:9: error: 'strcmp' was not declared in this scope
  465 |  return strcmp(buffer, s.buffer);
      |         ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:465:9: note: 'strcmp' is defined in header '<cstring>'; did you forget to '#inc
lude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'int arduino::String::compareTo(const char*) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:475:9: error: 'strcmp' was not declared in this scope
  475 |  return strcmp(buffer, cstr);
      |         ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:475:9: note: 'strcmp' is defined in header '<cstring>'; did you forget to '#inc
lude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'unsigned char arduino::String::equals(const char*) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:487:9: error: 'strcmp' was not declared in this scope
  487 |  return strcmp(buffer, cstr) == 0;
      |         ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:487:9: note: 'strcmp' is defined in header '<cstring>'; did you forget to '#inc
lude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'unsigned char arduino::String::startsWith(const arduino::S
tring&, unsigned int) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:512:9: error: 'strncmp' was not declared in this scope
  512 |  return strncmp( &buffer[offset], s2.buffer, s2.len ) == 0;
      |         ^~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:512:9: note: 'strncmp' is defined in header '<cstring>'; did you forget to '#in
clude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'unsigned char arduino::String::endsWith(const arduino::Str
ing&) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:518:9: error: 'strcmp' was not declared in this scope
  518 |  return strcmp(&buffer[len - s2.len], s2.buffer) == 0;
      |         ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:518:9: note: 'strcmp' is defined in header '<cstring>'; did you forget to '#inc
lude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'void arduino::String::getBytes(unsigned char*, unsigned in
t, unsigned int) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:560:2: error: 'strncpy' was not declared in this scope
  560 |  strncpy((char *)buf, buffer + index, n);
      |  ^~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:560:2: note: 'strncpy' is defined in header '<cstring>'; did you forget to '#in
clude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'int arduino::String::indexOf(char, unsigned int) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:576:21: error: 'strchr' was not declared in this scope
  576 |  const char* temp = strchr(buffer + fromIndex, ch);
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:576:21: note: 'strchr' is defined in header '<cstring>'; did you forget to '#in
clude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'int arduino::String::indexOf(const arduino::String&, unsig
ned int) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:589:22: error: 'strstr' was not declared in this scope
  589 |  const char *found = strstr(buffer + fromIndex, s2.buffer);
      |                      ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:589:22: note: 'strstr' is defined in header '<cstring>'; did you forget to '#in
clude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'int arduino::String::lastIndexOf(char, unsigned int) const
':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:604:15: error: 'strrchr' was not declared in this scope
  604 |  char* temp = strrchr( buffer, ch );
      |               ^~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:604:15: note: 'strrchr' is defined in header '<cstring>'; did you forget to '#i
nclude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'int arduino::String::lastIndexOf(const arduino::String&, u
nsigned int) const':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:621:7: error: 'strstr' was not declared in this scope
  621 |   p = strstr(p, s2.buffer);
      |       ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:621:7: note: 'strstr' is defined in header '<cstring>'; did you forget to '#inc
lude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'void arduino::String::replace(const arduino::String&, cons
t arduino::String&)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:661:21: error: 'strstr' was not declared in this scope
  661 |   while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:661:21: note: 'strstr' is defined in header '<cstring>'; did you forget to '#in
clude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:662:4: error: 'memcpy' was not declared in this scope
  662 |    memcpy(foundAt, replace.buffer, replace.len);
      |    ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:662:4: note: 'memcpy' is defined in header '<cstring>'; did you forget to '#inc
lude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:667:21: error: 'strstr' was not declared in this scope
  667 |   while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:667:21: note: 'strstr' is defined in header '<cstring>'; did you forget to '#in
clude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:676:4: error: 'memmove' was not declared in this scope
  676 |    memmove(readFrom - diff, readFrom, len - (readFrom - buffer));
      |    ^~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:676:4: note: 'memmove' is defined in header '<cstring>'; did you forget to '#in
clude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:679:4: error: 'memcpy' was not declared in this scope
  679 |    memcpy(buffer + index, replace.buffer, replace.len);
      |    ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:679:4: note: 'memcpy' is defined in header '<cstring>'; did you forget to '#inc
lude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:684:21: error: 'strstr' was not declared in this scope
  684 |   while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
      |                     ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:684:21: note: 'strstr' is defined in header '<cstring>'; did you forget to '#in
clude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:693:4: error: 'memmove' was not declared in this scope
  693 |    memmove(readFrom + diff, readFrom, len - (readFrom - buffer));
      |    ^~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:693:4: note: 'memmove' is defined in header '<cstring>'; did you forget to '#in
clude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:696:4: error: 'memcpy' was not declared in this scope
  696 |    memcpy(buffer + index, replace.buffer, replace.len);
      |    ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:696:4: note: 'memcpy' is defined in header '<cstring>'; did you forget to '#inc
lude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'void arduino::String::remove(unsigned int, unsigned int)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:715:2: error: 'memmove' was not declared in this scope
  715 |  memmove(writeTo, buffer + index + count,len - index);
      |  ^~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:715:2: note: 'memmove' is defined in header '<cstring>'; did you forget to '#in
clude <cstring>'?
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp: In member function 'void arduino::String::trim()':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:743:22: error: 'memmove' was not declared in this scope
  743 |  if (begin > buffer) memmove(buffer, begin, len);
      |                      ^~~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/String.cpp:743:22: note: 'memmove' is defined in header '<cstring>'; did you forget to '#i
nclude <cstring>'?
[12/77] Building CXX object CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/Stream.cpp.obj
FAILED: CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/Stream.cpp.obj 
/opt/homebrew/bin/arm-none-eabi-g++ -DARDUINO=183 -DARDUINO_ARCH_RP2040 -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DCFG_TUSB_OS=OPT_OS_PICO -DLIB_PICO_BIT_OPS=1 -DLIB_PICO_BIT_OPS_PICO=1 -DLIB_PICO_DIVID
ER=1 -DLIB_PICO_DIVIDER_HARDWARE=1 -DLIB_PICO_DOUBLE=1 -DLIB_PICO_DOUBLE_PICO=1 -DLIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1 -DLIB_PICO_FLOAT=1 -DLIB_PICO_FLOAT_PICO=1 -DLIB_PICO_INT64_OPS=
1 -DLIB_PICO_INT64_OPS_PICO=1 -DLIB_PICO_MALLOC=1 -DLIB_PICO_MEM_OPS=1 -DLIB_PICO_MEM_OPS_PICO=1 -DLIB_PICO_MULTICORE=1 -DLIB_PICO_PLATFORM=1 -DLIB_PICO_PRINTF=1 -DLIB_PICO_PRINTF_PICO=1 -DLI
B_PICO_RUNTIME=1 -DLIB_PICO_STANDARD_LINK=1 -DLIB_PICO_STDIO=1 -DLIB_PICO_STDIO_UART=1 -DLIB_PICO_STDIO_USB=1 -DLIB_PICO_STDLIB=1 -DLIB_PICO_SYNC=1 -DLIB_PICO_SYNC_CRITICAL_SECTION=1 -DLIB_PI
CO_SYNC_MUTEX=1 -DLIB_PICO_SYNC_SEM=1 -DLIB_PICO_TIME=1 -DLIB_PICO_UNIQUE_ID=1 -DLIB_PICO_UTIL=1 -DLIB_TINYUSB_BOARD=1 -DLIB_TINYUSB_DEVICE=1 -DPICO -DPICO_BOARD=\"pico_w\" -DPICO_BUILD=1 -DP
ICO_CMAKE_BUILD_TYPE=\"Release\" -DPICO_COPY_TO_RAM=0 -DPICO_CXX_ENABLE_EXCEPTIONS=0 -DPICO_NO_FLASH=0 -DPICO_NO_HARDWARE=0 -DPICO_ON_DEVICE=1 -DPICO_PROGRAM_NAME=\"BigBlinkingButton\" -DPICO
_PROGRAM_VERSION_STRING=\"0.1\" -DPICO_RP2040_USB_DEVICE_UFRAME_FIX=1 -DPICO_TARGET_NAME=\"BigBlinkingButton\" -DPICO_USE_BLOCKED_RAM=0 -I/Users/mads/code/microcontroller-projects/BigBlinking
Button -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/.. -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include -I/Users/mads/code/microcontroller-projects/BigBl
inkingButton/include/arduino-pico/cores/rp2040 -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api -I/Users/mads/picosdk/src/rp2_common/pico
_stdio_usb/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio/include -I/Users/mads/picosdk/src/rp2_common/pico_printf/include -I/Users/mads/picosdk/src/common/pico_time/include -I/Users
/mads/picosdk/src/rp2_common/hardware_timer/include -I/Users/mads/picosdk/src/common/pico_base/include -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/build/generated/pico_base 
-I/Users/mads/picosdk/src/boards/include -I/Users/mads/picosdk/src/rp2_common/pico_platform/include -I/Users/mads/picosdk/src/rp2040/hardware_regs/include -I/Users/mads/picosdk/src/rp2_common
/hardware_base/include -I/Users/mads/picosdk/src/rp2040/hardware_structs/include -I/Users/mads/picosdk/src/rp2_common/hardware_claim/include -I/Users/mads/picosdk/src/rp2_common/hardware_sync
/include -I/Users/mads/picosdk/src/rp2_common/hardware_irq/include -I/Users/mads/picosdk/src/common/pico_sync/include -I/Users/mads/picosdk/src/common/pico_util/include -I/Users/mads/picosdk/
src/rp2_common/pico_unique_id/include -I/Users/mads/picosdk/src/rp2_common/hardware_flash/include -I/Users/mads/picosdk/src/rp2_common/pico_bootrom/include -I/Users/mads/picosdk/src/common/pi
co_usb_reset_interface/include -I/Users/mads/picosdk/lib/tinyusb/src -I/Users/mads/picosdk/lib/tinyusb/src/common -I/Users/mads/picosdk/lib/tinyusb/hw -I/Users/mads/picosdk/src/rp2_common/har
dware_resets/include -I/Users/mads/picosdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include -I/Users/mads/picosdk/src/rp2_common/hardware_gpio/include -I/Users/mads/picosdk/src/c
ommon/pico_stdlib/include -I/Users/mads/picosdk/src/rp2_common/hardware_uart/include -I/Users/mads/picosdk/src/rp2_common/hardware_clocks/include -I/Users/mads/picosdk/src/rp2_common/hardware
_pll/include -I/Users/mads/picosdk/src/rp2_common/hardware_vreg/include -I/Users/mads/picosdk/src/rp2_common/hardware_watchdog/include -I/Users/mads/picosdk/src/rp2_common/hardware_xosc/inclu
de -I/Users/mads/picosdk/src/rp2_common/hardware_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_runtime/include -I/Users/mads/picosdk/src/common/pico_bit_ops/include -I/Users/mads/
picosdk/src/common/pico_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_double/include -I/Users/mads/picosdk/src/rp2_common/pico_float/include -I/Users/mads/picosdk/src/rp2_common/p
ico_malloc/include -I/Users/mads/picosdk/src/common/pico_binary_info/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio_uart/include -I/Users/mads/picosdk/src/rp2_common/pico_int64_ops/i
nclude -I/Users/mads/picosdk/src/rp2_common/pico_mem_ops/include -I/Users/mads/picosdk/src/rp2_common/boot_stage2/include -I/Users/mads/picosdk/src/rp2_common/pico_multicore/include -I/Users/
mads/picosdk/src/rp2_common/hardware_pwm/include -I/Users/mads/picosdk/src/rp2_common/hardware_adc/include -I/Users/mads/picosdk/src/rp2_common/hardware_spi/include -I/Users/mads/picosdk/src/
rp2_common/hardware_i2c/include -I/Users/mads/picosdk/src/rp2_common/hardware_pio/include -I/Users/mads/picosdk/src/rp2_common/hardware_dma/include -isystem /Users/mads/.cache/CPM/picodebounc
ebutton/7ebe22768bda19fd9eca73af44c3556c52ccf0b9/include -mcpu=cortex-m0plus -mthumb -O3 -DNDEBUG -ffunction-sections -fdata-sections -fno-exceptions -fno-unwind-tables -fno-rtti -fno-use-cxa
-atexit -std=gnu++2a -MD -MT CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/Stream.cpp.obj -MF CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API
/api/Stream.cpp.obj.d -o CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/Stream.cpp.obj -c /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduin
o-pico/ArduinoCore-API/api/Stream.cpp
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/Stream.h:25,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/Stream.cpp:26:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/Print.h: In member function 'size_t arduino::Print::write(const char*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/Print.h:52:42: error: 'strlen' was not declared in this scope
   52 |       return write((const uint8_t *)str, strlen(str));
      |                                          ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/Print.h:26:1: note: 'strlen' is defined in header '<cstring>'; did you forget to '#include
 <cstring>'?
   25 | #include "Printable.h"
  +++ |+#include <cstring>
   26 | 
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/Stream.cpp: In member function 'bool arduino::Stream::find(const char*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/Stream.cpp:97:28: error: 'strlen' was not declared in this scope
   97 |   return findUntil(target, strlen(target), NULL, 0);
      |                            ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/Stream.cpp:27:1: note: 'strlen' is defined in header '<cstring>'; did you forget to '#incl
ude <cstring>'?
   26 | #include "Stream.h"
  +++ |+#include <cstring>
   27 | 
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/Stream.cpp: In member function 'bool arduino::Stream::findUntil(const char*, const char*)'
:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/Stream.cpp:110:28: error: 'strlen' was not declared in this scope
  110 |   return findUntil(target, strlen(target), terminator, strlen(terminator));
      |                            ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/Stream.cpp:110:28: note: 'strlen' is defined in header '<cstring>'; did you forget to '#in
clude <cstring>'?
[13/77] Building CXX object CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/Stream.cpp.obj
FAILED: CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/Stream.cpp.obj 
/opt/homebrew/bin/arm-none-eabi-g++ -DARDUINO=183 -DARDUINO_ARCH_RP2040 -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DCFG_TUSB_OS=OPT_OS_PICO -DLIB_PICO_BIT_OPS=1 -DLIB_PICO_BIT_OPS_PICO=1 -DLIB_PICO_DIVID
ER=1 -DLIB_PICO_DIVIDER_HARDWARE=1 -DLIB_PICO_DOUBLE=1 -DLIB_PICO_DOUBLE_PICO=1 -DLIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1 -DLIB_PICO_FLOAT=1 -DLIB_PICO_FLOAT_PICO=1 -DLIB_PICO_INT64_OPS=
1 -DLIB_PICO_INT64_OPS_PICO=1 -DLIB_PICO_MALLOC=1 -DLIB_PICO_MEM_OPS=1 -DLIB_PICO_MEM_OPS_PICO=1 -DLIB_PICO_MULTICORE=1 -DLIB_PICO_PLATFORM=1 -DLIB_PICO_PRINTF=1 -DLIB_PICO_PRINTF_PICO=1 -DLI
B_PICO_RUNTIME=1 -DLIB_PICO_STANDARD_LINK=1 -DLIB_PICO_STDIO=1 -DLIB_PICO_STDIO_UART=1 -DLIB_PICO_STDIO_USB=1 -DLIB_PICO_STDLIB=1 -DLIB_PICO_SYNC=1 -DLIB_PICO_SYNC_CRITICAL_SECTION=1 -DLIB_PI
CO_SYNC_MUTEX=1 -DLIB_PICO_SYNC_SEM=1 -DLIB_PICO_TIME=1 -DLIB_PICO_UNIQUE_ID=1 -DLIB_PICO_UTIL=1 -DLIB_TINYUSB_BOARD=1 -DLIB_TINYUSB_DEVICE=1 -DPICO -DPICO_BOARD=\"pico_w\" -DPICO_BUILD=1 -DP
ICO_CMAKE_BUILD_TYPE=\"Release\" -DPICO_COPY_TO_RAM=0 -DPICO_CXX_ENABLE_EXCEPTIONS=0 -DPICO_NO_FLASH=0 -DPICO_NO_HARDWARE=0 -DPICO_ON_DEVICE=1 -DPICO_PROGRAM_NAME=\"BigBlinkingButton\" -DPICO
_PROGRAM_VERSION_STRING=\"0.1\" -DPICO_RP2040_USB_DEVICE_UFRAME_FIX=1 -DPICO_TARGET_NAME=\"BigBlinkingButton\" -DPICO_USE_BLOCKED_RAM=0 -I/Users/mads/code/microcontroller-projects/BigBlinking
Button -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/.. -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include -I/Users/mads/code/microcontroller-projects/BigBl
inkingButton/include/arduino-pico/cores/rp2040 -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api -I/Users/mads/picosdk/src/rp2_common/pico
_stdio_usb/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio/include -I/Users/mads/picosdk/src/rp2_common/pico_printf/include -I/Users/mads/picosdk/src/common/pico_time/include -I/Users
/mads/picosdk/src/rp2_common/hardware_timer/include -I/Users/mads/picosdk/src/common/pico_base/include -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/build/generated/pico_base 
-I/Users/mads/picosdk/src/boards/include -I/Users/mads/picosdk/src/rp2_common/pico_platform/include -I/Users/mads/picosdk/src/rp2040/hardware_regs/include -I/Users/mads/picosdk/src/rp2_common
/hardware_base/include -I/Users/mads/picosdk/src/rp2040/hardware_structs/include -I/Users/mads/picosdk/src/rp2_common/hardware_claim/include -I/Users/mads/picosdk/src/rp2_common/hardware_sync
/include -I/Users/mads/picosdk/src/rp2_common/hardware_irq/include -I/Users/mads/picosdk/src/common/pico_sync/include -I/Users/mads/picosdk/src/common/pico_util/include -I/Users/mads/picosdk/
src/rp2_common/pico_unique_id/include -I/Users/mads/picosdk/src/rp2_common/hardware_flash/include -I/Users/mads/picosdk/src/rp2_common/pico_bootrom/include -I/Users/mads/picosdk/src/common/pi
co_usb_reset_interface/include -I/Users/mads/picosdk/lib/tinyusb/src -I/Users/mads/picosdk/lib/tinyusb/src/common -I/Users/mads/picosdk/lib/tinyusb/hw -I/Users/mads/picosdk/src/rp2_common/har
dware_resets/include -I/Users/mads/picosdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include -I/Users/mads/picosdk/src/rp2_common/hardware_gpio/include -I/Users/mads/picosdk/src/c
ommon/pico_stdlib/include -I/Users/mads/picosdk/src/rp2_common/hardware_uart/include -I/Users/mads/picosdk/src/rp2_common/hardware_clocks/include -I/Users/mads/picosdk/src/rp2_common/hardware
_pll/include -I/Users/mads/picosdk/src/rp2_common/hardware_vreg/include -I/Users/mads/picosdk/src/rp2_common/hardware_watchdog/include -I/Users/mads/picosdk/src/rp2_common/hardware_xosc/inclu
de -I/Users/mads/picosdk/src/rp2_common/hardware_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_runtime/include -I/Users/mads/picosdk/src/common/pico_bit_ops/include -I/Users/mads/
picosdk/src/common/pico_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_double/include -I/Users/mads/picosdk/src/rp2_common/pico_float/include -I/Users/mads/picosdk/src/rp2_common/p
ico_malloc/include -I/Users/mads/picosdk/src/common/pico_binary_info/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio_uart/include -I/Users/mads/picosdk/src/rp2_common/pico_int64_ops/i
nclude -I/Users/mads/picosdk/src/rp2_common/pico_mem_ops/include -I/Users/mads/picosdk/src/rp2_common/boot_stage2/include -I/Users/mads/picosdk/src/rp2_common/pico_multicore/include -I/Users/
mads/picosdk/src/rp2_common/hardware_pwm/include -I/Users/mads/picosdk/src/rp2_common/hardware_adc/include -I/Users/mads/picosdk/src/rp2_common/hardware_spi/include -I/Users/mads/picosdk/src/
rp2_common/hardware_i2c/include -I/Users/mads/picosdk/src/rp2_common/hardware_pio/include -I/Users/mads/picosdk/src/rp2_common/hardware_dma/include -isystem /Users/mads/.cache/CPM/picodebounc
ebutton/7ebe22768bda19fd9eca73af44c3556c52ccf0b9/include -mcpu=cortex-m0plus -mthumb -O3 -DNDEBUG -ffunction-sections -fdata-sections -fno-exceptions -fno-unwind-tables -fno-rtti -fno-use-cxa
-atexit -std=gnu++2a -MD -MT CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/Stream.cpp.obj -MF CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/S
tream.cpp.obj.d -o CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/Stream.cpp.obj -c /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/co
res/rp2040/api/Stream.cpp
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/Stream.h:25,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/Stream.cpp:26,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/Stream.cpp:1:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/Print.h: In member function 'size_t arduino::Print::write(const 
char*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/Print.h:52:42: error: 'strlen' was not declared in this scope
   52 |       return write((const uint8_t *)str, strlen(str));
      |                                          ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/Print.h:26:1: note: 'strlen' is defined in header '<cstring>'; d
id you forget to '#include <cstring>'?
   25 | #include "Printable.h"
  +++ |+#include <cstring>
   26 | 
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/Stream.cpp:1:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/Stream.cpp: In member function 'bool arduino::Stream::find(const
 char*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/Stream.cpp:97:28: error: 'strlen' was not declared in this scope
   97 |   return findUntil(target, strlen(target), NULL, 0);
      |                            ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/Stream.cpp:27:1: note: 'strlen' is defined in header '<cstring>'
; did you forget to '#include <cstring>'?
   26 | #include "Stream.h"
  +++ |+#include <cstring>
   27 | 
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/Stream.cpp: In member function 'bool arduino::Stream::findUntil(
const char*, const char*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/Stream.cpp:110:28: error: 'strlen' was not declared in this scop
e
  110 |   return findUntil(target, strlen(target), terminator, strlen(terminator));
      |                            ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/Stream.cpp:110:28: note: 'strlen' is defined in header '<cstring
>'; did you forget to '#include <cstring>'?
[14/77] Building CXX object CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/Print.cpp.obj
FAILED: CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/Print.cpp.obj 
/opt/homebrew/bin/arm-none-eabi-g++ -DARDUINO=183 -DARDUINO_ARCH_RP2040 -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DCFG_TUSB_OS=OPT_OS_PICO -DLIB_PICO_BIT_OPS=1 -DLIB_PICO_BIT_OPS_PICO=1 -DLIB_PICO_DIVID
ER=1 -DLIB_PICO_DIVIDER_HARDWARE=1 -DLIB_PICO_DOUBLE=1 -DLIB_PICO_DOUBLE_PICO=1 -DLIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1 -DLIB_PICO_FLOAT=1 -DLIB_PICO_FLOAT_PICO=1 -DLIB_PICO_INT64_OPS=
1 -DLIB_PICO_INT64_OPS_PICO=1 -DLIB_PICO_MALLOC=1 -DLIB_PICO_MEM_OPS=1 -DLIB_PICO_MEM_OPS_PICO=1 -DLIB_PICO_MULTICORE=1 -DLIB_PICO_PLATFORM=1 -DLIB_PICO_PRINTF=1 -DLIB_PICO_PRINTF_PICO=1 -DLI
B_PICO_RUNTIME=1 -DLIB_PICO_STANDARD_LINK=1 -DLIB_PICO_STDIO=1 -DLIB_PICO_STDIO_UART=1 -DLIB_PICO_STDIO_USB=1 -DLIB_PICO_STDLIB=1 -DLIB_PICO_SYNC=1 -DLIB_PICO_SYNC_CRITICAL_SECTION=1 -DLIB_PI
CO_SYNC_MUTEX=1 -DLIB_PICO_SYNC_SEM=1 -DLIB_PICO_TIME=1 -DLIB_PICO_UNIQUE_ID=1 -DLIB_PICO_UTIL=1 -DLIB_TINYUSB_BOARD=1 -DLIB_TINYUSB_DEVICE=1 -DPICO -DPICO_BOARD=\"pico_w\" -DPICO_BUILD=1 -DP
ICO_CMAKE_BUILD_TYPE=\"Release\" -DPICO_COPY_TO_RAM=0 -DPICO_CXX_ENABLE_EXCEPTIONS=0 -DPICO_NO_FLASH=0 -DPICO_NO_HARDWARE=0 -DPICO_ON_DEVICE=1 -DPICO_PROGRAM_NAME=\"BigBlinkingButton\" -DPICO
_PROGRAM_VERSION_STRING=\"0.1\" -DPICO_RP2040_USB_DEVICE_UFRAME_FIX=1 -DPICO_TARGET_NAME=\"BigBlinkingButton\" -DPICO_USE_BLOCKED_RAM=0 -I/Users/mads/code/microcontroller-projects/BigBlinking
Button -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/.. -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include -I/Users/mads/code/microcontroller-projects/BigBl
inkingButton/include/arduino-pico/cores/rp2040 -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api -I/Users/mads/picosdk/src/rp2_common/pico
_stdio_usb/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio/include -I/Users/mads/picosdk/src/rp2_common/pico_printf/include -I/Users/mads/picosdk/src/common/pico_time/include -I/Users
/mads/picosdk/src/rp2_common/hardware_timer/include -I/Users/mads/picosdk/src/common/pico_base/include -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/build/generated/pico_base 
-I/Users/mads/picosdk/src/boards/include -I/Users/mads/picosdk/src/rp2_common/pico_platform/include -I/Users/mads/picosdk/src/rp2040/hardware_regs/include -I/Users/mads/picosdk/src/rp2_common
/hardware_base/include -I/Users/mads/picosdk/src/rp2040/hardware_structs/include -I/Users/mads/picosdk/src/rp2_common/hardware_claim/include -I/Users/mads/picosdk/src/rp2_common/hardware_sync
/include -I/Users/mads/picosdk/src/rp2_common/hardware_irq/include -I/Users/mads/picosdk/src/common/pico_sync/include -I/Users/mads/picosdk/src/common/pico_util/include -I/Users/mads/picosdk/
src/rp2_common/pico_unique_id/include -I/Users/mads/picosdk/src/rp2_common/hardware_flash/include -I/Users/mads/picosdk/src/rp2_common/pico_bootrom/include -I/Users/mads/picosdk/src/common/pi
co_usb_reset_interface/include -I/Users/mads/picosdk/lib/tinyusb/src -I/Users/mads/picosdk/lib/tinyusb/src/common -I/Users/mads/picosdk/lib/tinyusb/hw -I/Users/mads/picosdk/src/rp2_common/har
dware_resets/include -I/Users/mads/picosdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include -I/Users/mads/picosdk/src/rp2_common/hardware_gpio/include -I/Users/mads/picosdk/src/c
ommon/pico_stdlib/include -I/Users/mads/picosdk/src/rp2_common/hardware_uart/include -I/Users/mads/picosdk/src/rp2_common/hardware_clocks/include -I/Users/mads/picosdk/src/rp2_common/hardware
_pll/include -I/Users/mads/picosdk/src/rp2_common/hardware_vreg/include -I/Users/mads/picosdk/src/rp2_common/hardware_watchdog/include -I/Users/mads/picosdk/src/rp2_common/hardware_xosc/inclu
de -I/Users/mads/picosdk/src/rp2_common/hardware_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_runtime/include -I/Users/mads/picosdk/src/common/pico_bit_ops/include -I/Users/mads/
picosdk/src/common/pico_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_double/include -I/Users/mads/picosdk/src/rp2_common/pico_float/include -I/Users/mads/picosdk/src/rp2_common/p
ico_malloc/include -I/Users/mads/picosdk/src/common/pico_binary_info/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio_uart/include -I/Users/mads/picosdk/src/rp2_common/pico_int64_ops/i
nclude -I/Users/mads/picosdk/src/rp2_common/pico_mem_ops/include -I/Users/mads/picosdk/src/rp2_common/boot_stage2/include -I/Users/mads/picosdk/src/rp2_common/pico_multicore/include -I/Users/
mads/picosdk/src/rp2_common/hardware_pwm/include -I/Users/mads/picosdk/src/rp2_common/hardware_adc/include -I/Users/mads/picosdk/src/rp2_common/hardware_spi/include -I/Users/mads/picosdk/src/
rp2_common/hardware_i2c/include -I/Users/mads/picosdk/src/rp2_common/hardware_pio/include -I/Users/mads/picosdk/src/rp2_common/hardware_dma/include -isystem /Users/mads/.cache/CPM/picodebounc
ebutton/7ebe22768bda19fd9eca73af44c3556c52ccf0b9/include -mcpu=cortex-m0plus -mthumb -O3 -DNDEBUG -ffunction-sections -fdata-sections -fno-exceptions -fno-unwind-tables -fno-rtti -fno-use-cxa
-atexit -std=gnu++2a -MD -MT CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/Print.cpp.obj -MF CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/Pr
int.cpp.obj.d -o CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/cores/rp2040/api/Print.cpp.obj -c /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores
/rp2040/api/Print.cpp
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/Print.cpp:25,
                 from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/Print.cpp:1:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/Print.h: In member function 'size_t arduino::Print::write(const 
char*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/Print.h:52:42: error: 'strlen' was not declared in this scope
   52 |       return write((const uint8_t *)str, strlen(str));
      |                                          ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/cores/rp2040/api/../../../ArduinoCore-API/api/Print.h:26:1: note: 'strlen' is defined in header '<cstring>'; d
id you forget to '#include <cstring>'?
   25 | #include "Printable.h"
  +++ |+#include <cstring>
   26 | 
[15/77] Building CXX object CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/Print.cpp.obj
FAILED: CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/Print.cpp.obj 
/opt/homebrew/bin/arm-none-eabi-g++ -DARDUINO=183 -DARDUINO_ARCH_RP2040 -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DCFG_TUSB_OS=OPT_OS_PICO -DLIB_PICO_BIT_OPS=1 -DLIB_PICO_BIT_OPS_PICO=1 -DLIB_PICO_DIVID
ER=1 -DLIB_PICO_DIVIDER_HARDWARE=1 -DLIB_PICO_DOUBLE=1 -DLIB_PICO_DOUBLE_PICO=1 -DLIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1 -DLIB_PICO_FLOAT=1 -DLIB_PICO_FLOAT_PICO=1 -DLIB_PICO_INT64_OPS=
1 -DLIB_PICO_INT64_OPS_PICO=1 -DLIB_PICO_MALLOC=1 -DLIB_PICO_MEM_OPS=1 -DLIB_PICO_MEM_OPS_PICO=1 -DLIB_PICO_MULTICORE=1 -DLIB_PICO_PLATFORM=1 -DLIB_PICO_PRINTF=1 -DLIB_PICO_PRINTF_PICO=1 -DLI
B_PICO_RUNTIME=1 -DLIB_PICO_STANDARD_LINK=1 -DLIB_PICO_STDIO=1 -DLIB_PICO_STDIO_UART=1 -DLIB_PICO_STDIO_USB=1 -DLIB_PICO_STDLIB=1 -DLIB_PICO_SYNC=1 -DLIB_PICO_SYNC_CRITICAL_SECTION=1 -DLIB_PI
CO_SYNC_MUTEX=1 -DLIB_PICO_SYNC_SEM=1 -DLIB_PICO_TIME=1 -DLIB_PICO_UNIQUE_ID=1 -DLIB_PICO_UTIL=1 -DLIB_TINYUSB_BOARD=1 -DLIB_TINYUSB_DEVICE=1 -DPICO -DPICO_BOARD=\"pico_w\" -DPICO_BUILD=1 -DP
ICO_CMAKE_BUILD_TYPE=\"Release\" -DPICO_COPY_TO_RAM=0 -DPICO_CXX_ENABLE_EXCEPTIONS=0 -DPICO_NO_FLASH=0 -DPICO_NO_HARDWARE=0 -DPICO_ON_DEVICE=1 -DPICO_PROGRAM_NAME=\"BigBlinkingButton\" -DPICO
_PROGRAM_VERSION_STRING=\"0.1\" -DPICO_RP2040_USB_DEVICE_UFRAME_FIX=1 -DPICO_TARGET_NAME=\"BigBlinkingButton\" -DPICO_USE_BLOCKED_RAM=0 -I/Users/mads/code/microcontroller-projects/BigBlinking
Button -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/.. -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include -I/Users/mads/code/microcontroller-projects/BigBl
inkingButton/include/arduino-pico/cores/rp2040 -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api -I/Users/mads/picosdk/src/rp2_common/pico
_stdio_usb/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio/include -I/Users/mads/picosdk/src/rp2_common/pico_printf/include -I/Users/mads/picosdk/src/common/pico_time/include -I/Users
/mads/picosdk/src/rp2_common/hardware_timer/include -I/Users/mads/picosdk/src/common/pico_base/include -I/Users/mads/code/microcontroller-projects/BigBlinkingButton/build/generated/pico_base 
-I/Users/mads/picosdk/src/boards/include -I/Users/mads/picosdk/src/rp2_common/pico_platform/include -I/Users/mads/picosdk/src/rp2040/hardware_regs/include -I/Users/mads/picosdk/src/rp2_common
/hardware_base/include -I/Users/mads/picosdk/src/rp2040/hardware_structs/include -I/Users/mads/picosdk/src/rp2_common/hardware_claim/include -I/Users/mads/picosdk/src/rp2_common/hardware_sync
/include -I/Users/mads/picosdk/src/rp2_common/hardware_irq/include -I/Users/mads/picosdk/src/common/pico_sync/include -I/Users/mads/picosdk/src/common/pico_util/include -I/Users/mads/picosdk/
src/rp2_common/pico_unique_id/include -I/Users/mads/picosdk/src/rp2_common/hardware_flash/include -I/Users/mads/picosdk/src/rp2_common/pico_bootrom/include -I/Users/mads/picosdk/src/common/pi
co_usb_reset_interface/include -I/Users/mads/picosdk/lib/tinyusb/src -I/Users/mads/picosdk/lib/tinyusb/src/common -I/Users/mads/picosdk/lib/tinyusb/hw -I/Users/mads/picosdk/src/rp2_common/har
dware_resets/include -I/Users/mads/picosdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include -I/Users/mads/picosdk/src/rp2_common/hardware_gpio/include -I/Users/mads/picosdk/src/c
ommon/pico_stdlib/include -I/Users/mads/picosdk/src/rp2_common/hardware_uart/include -I/Users/mads/picosdk/src/rp2_common/hardware_clocks/include -I/Users/mads/picosdk/src/rp2_common/hardware
_pll/include -I/Users/mads/picosdk/src/rp2_common/hardware_vreg/include -I/Users/mads/picosdk/src/rp2_common/hardware_watchdog/include -I/Users/mads/picosdk/src/rp2_common/hardware_xosc/inclu
de -I/Users/mads/picosdk/src/rp2_common/hardware_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_runtime/include -I/Users/mads/picosdk/src/common/pico_bit_ops/include -I/Users/mads/
picosdk/src/common/pico_divider/include -I/Users/mads/picosdk/src/rp2_common/pico_double/include -I/Users/mads/picosdk/src/rp2_common/pico_float/include -I/Users/mads/picosdk/src/rp2_common/p
ico_malloc/include -I/Users/mads/picosdk/src/common/pico_binary_info/include -I/Users/mads/picosdk/src/rp2_common/pico_stdio_uart/include -I/Users/mads/picosdk/src/rp2_common/pico_int64_ops/i
nclude -I/Users/mads/picosdk/src/rp2_common/pico_mem_ops/include -I/Users/mads/picosdk/src/rp2_common/boot_stage2/include -I/Users/mads/picosdk/src/rp2_common/pico_multicore/include -I/Users/
mads/picosdk/src/rp2_common/hardware_pwm/include -I/Users/mads/picosdk/src/rp2_common/hardware_adc/include -I/Users/mads/picosdk/src/rp2_common/hardware_spi/include -I/Users/mads/picosdk/src/
rp2_common/hardware_i2c/include -I/Users/mads/picosdk/src/rp2_common/hardware_pio/include -I/Users/mads/picosdk/src/rp2_common/hardware_dma/include -isystem /Users/mads/.cache/CPM/picodebounc
ebutton/7ebe22768bda19fd9eca73af44c3556c52ccf0b9/include -mcpu=cortex-m0plus -mthumb -O3 -DNDEBUG -ffunction-sections -fdata-sections -fno-exceptions -fno-unwind-tables -fno-rtti -fno-use-cxa
-atexit -std=gnu++2a -MD -MT CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/Print.cpp.obj -MF CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/
api/Print.cpp.obj.d -o CMakeFiles/BigBlinkingButton.dir/include/arduino-pico/ArduinoCore-API/api/Print.cpp.obj -c /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-p
ico/ArduinoCore-API/api/Print.cpp
In file included from /Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/Print.cpp:25:
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/Print.h: In member function 'size_t arduino::Print::write(const char*)':
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/Print.h:52:42: error: 'strlen' was not declared in this scope
   52 |       return write((const uint8_t *)str, strlen(str));
      |                                          ^~~~~~
/Users/mads/code/microcontroller-projects/BigBlinkingButton/include/arduino-pico/ArduinoCore-API/api/Print.h:26:1: note: 'strlen' is defined in header '<cstring>'; did you forget to '#include
 <cstring>'?
   25 | #include "Printable.h"
  +++ |+#include <cstring>
   26 | 
[16/77] Building C object CMakeFiles/BigBlinkingButton.dir/Users/mads/picosdk/src/rp2_common/pico_stdio_usb/stdio_usb_descriptors.c.obj
ninja: build stopped: subcommand failed.

[Process exited 1]
madskjeldgaard commented 1 year ago

I took some inspiration from this FYI

https://github.com/pschatzmann/pico-arduino/blob/main/ArduinoSketch.cmake