Having proven the environment by bulding the examples I have now progressed to trying my own code !
I am writing a simple clock based on the ntp_client example outputting the time to a 7 segment display.
However I seem to have fallen at the first hurdle.
[build] D:/ntp_clock/main_clock.c:44:10: fatal error: lwip/dns.h: No such file or directory
[build] 44 | #include "lwip/dns.h"
[build] | ^~~~~~~~~~~~
[build] compilation terminated.
[build] ninja: build stopped: subcommand failed
The includes were copied directly from the example.
Snippets from CMakeLists.txt:
set(PICO_BOARD pico_w)
..
include(pico_sdk_import.cmake)
The build command output;
build] "d:\Raspberry Pi\Pico SDK v1.5.1\gcc-arm-none-eabi\bin\arm-none-eabi-gcc.exe" -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DCFG_TUSB_OS=OPT_OS_PICO -DCYW43_LWIP=0 -DLIB_PICO_ASYNC_CONTEXT_THREADSAFE_BACKGROUND=1 -DLIB_PICO_BIT_OPS=1 -DLIB_PICO_BIT_OPS_PICO=1 -DLIB_PICO_CYW43_ARCH=1 -DLIB_PICO_DIVIDER=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 -DLIB_PICO_RUNTIME=1 -DLIB_PICO_STANDARD_LINK=1 -DLIB_PICO_STDIO=1 -DLIB_PICO_STDIO_USB=1 -DLIB_PICO_STDLIB=1 -DLIB_PICO_SYNC=1 -DLIB_PICO_SYNC_CRITICAL_SECTION=1 -DLIB_PICO_SYNC_MUTEX=1 -DLIB_PICO_SYNC_SEM=1 -DLIB_PICO_TIME=1 -DLIB_PICO_UNIQUE_ID=1 -DLIB_PICO_UTIL=1 -DPICO_BOARD=\"pico_w\" -DPICO_BUILD=1 -DPICO_CMAKE_BUILD_TYPE=\"Debug\" -DPICO_COPY_TO_RAM=0 -DPICO_CXX_ENABLE_EXCEPTIONS=0 -DPICO_CYW43_ARCH_THREADSAFE_BACKGROUND=1 -DPICO_NO_FLASH=0 -DPICO_NO_HARDWARE=0 -DPICO_ON_DEVICE=1 -DPICO_RP2040_USB_DEVICE_UFRAME_FIX=1 -DPICO_TARGET_NAME=\"oledClock\" -DPICO_USE_BLOCKED_RAM=0 -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_stdlib/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_gpio/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_base/include" -ID:/git/GitHub/ntp_clock/build/generated/pico_base -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/boards/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_platform/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2040/hardware_regs/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_base/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2040/hardware_structs/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_claim/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_sync/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_irq/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_sync/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_time/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_timer/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_util/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_uart/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_resets/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_clocks/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_pll/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_vreg/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_watchdog/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_xosc/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_divider/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_runtime/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_printf/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_bit_ops/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_divider/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_double/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_float/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_malloc/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_bootrom/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_binary_info/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_stdio/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_stdio_usb/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_unique_id/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_flash/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_usb_reset_interface/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_int64_ops/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_mem_ops/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/boot_stage2/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/lib/tinyusb/src" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/lib/tinyusb/src/common" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/lib/tinyusb/hw" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_cyw43_arch/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/lib/cyw43-driver/src" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/lib/cyw43-driver/firmware" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_cyw43_driver/cybt_shared_bus" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_pio/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_dma/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_exception/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_cyw43_driver/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_async_context/include" -ID:/git/GitHub/ntp_clock/build/pico-sdk/src/rp2_common/pico_cyw43_driver -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_adc/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_i2c/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_multicore/include" -mcpu=cortex-m0plus -mthumb -Og -g -ffunction-sections -fdata-sections -std=gnu11 -MD -MT CMakeFiles/oledClock.dir/main_clock.c.obj -MF CMakeFiles\oledClock.dir\main_clock.c.obj.d -o CMakeFiles/oledClock.dir/main_clock.c.obj -c D:/git/GitHub/ntp_clock/main_clock.c
The only reference to LWIP in the build command I can see is: -DCYW43_LWIP=0 but there doesn't seem to be a path to the lwip libs - or am I overthinking it ?
My environment was built using the pico installer : pico-setup-windows and using VSCode.
Thoughts ?
Andrew
.
I am writing a simple clock based on the ntp_client example outputting the time to a 7 segment display.
However I seem to have fallen at the first hurdle.
[build] D:/ntp_clock/main_clock.c:44:10: fatal error: lwip/dns.h: No such file or directory
[build] 44 | #include "lwip/dns.h"
[build] | ^~~~~~~~~~~~
[build] compilation terminated.
[build] ninja: build stopped: subcommand failed
The includes were copied directly from the example.
Snippets from CMakeLists.txt:
set(PICO_BOARD pico_w)
..
include(pico_sdk_import.cmake)
The build command output;
build] "d:\Raspberry Pi\Pico SDK v1.5.1\gcc-arm-none-eabi\bin\arm-none-eabi-gcc.exe" -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DCFG_TUSB_OS=OPT_OS_PICO -DCYW43_LWIP=0 -DLIB_PICO_ASYNC_CONTEXT_THREADSAFE_BACKGROUND=1 -DLIB_PICO_BIT_OPS=1 -DLIB_PICO_BIT_OPS_PICO=1 -DLIB_PICO_CYW43_ARCH=1 -DLIB_PICO_DIVIDER=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 -DLIB_PICO_RUNTIME=1 -DLIB_PICO_STANDARD_LINK=1 -DLIB_PICO_STDIO=1 -DLIB_PICO_STDIO_USB=1 -DLIB_PICO_STDLIB=1 -DLIB_PICO_SYNC=1 -DLIB_PICO_SYNC_CRITICAL_SECTION=1 -DLIB_PICO_SYNC_MUTEX=1 -DLIB_PICO_SYNC_SEM=1 -DLIB_PICO_TIME=1 -DLIB_PICO_UNIQUE_ID=1 -DLIB_PICO_UTIL=1 -DPICO_BOARD=\"pico_w\" -DPICO_BUILD=1 -DPICO_CMAKE_BUILD_TYPE=\"Debug\" -DPICO_COPY_TO_RAM=0 -DPICO_CXX_ENABLE_EXCEPTIONS=0 -DPICO_CYW43_ARCH_THREADSAFE_BACKGROUND=1 -DPICO_NO_FLASH=0 -DPICO_NO_HARDWARE=0 -DPICO_ON_DEVICE=1 -DPICO_RP2040_USB_DEVICE_UFRAME_FIX=1 -DPICO_TARGET_NAME=\"oledClock\" -DPICO_USE_BLOCKED_RAM=0 -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_stdlib/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_gpio/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_base/include" -ID:/git/GitHub/ntp_clock/build/generated/pico_base -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/boards/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_platform/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2040/hardware_regs/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_base/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2040/hardware_structs/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_claim/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_sync/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_irq/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_sync/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_time/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_timer/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_util/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_uart/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_resets/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_clocks/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_pll/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_vreg/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_watchdog/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_xosc/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_divider/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_runtime/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_printf/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_bit_ops/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_divider/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_double/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_float/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_malloc/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_bootrom/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_binary_info/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_stdio/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_stdio_usb/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_unique_id/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_flash/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/common/pico_usb_reset_interface/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_int64_ops/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_mem_ops/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/boot_stage2/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/lib/tinyusb/src" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/lib/tinyusb/src/common" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/lib/tinyusb/hw" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_cyw43_arch/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/lib/cyw43-driver/src" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/lib/cyw43-driver/firmware" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_cyw43_driver/cybt_shared_bus" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_pio/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_dma/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_exception/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_cyw43_driver/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_async_context/include" -ID:/git/GitHub/ntp_clock/build/pico-sdk/src/rp2_common/pico_cyw43_driver -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_adc/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/hardware_i2c/include" -I"D:/Raspberry Pi/Pico SDK v1.5.1/pico-sdk/src/rp2_common/pico_multicore/include" -mcpu=cortex-m0plus -mthumb -Og -g -ffunction-sections -fdata-sections -std=gnu11 -MD -MT CMakeFiles/oledClock.dir/main_clock.c.obj -MF CMakeFiles\oledClock.dir\main_clock.c.obj.d -o CMakeFiles/oledClock.dir/main_clock.c.obj -c D:/git/GitHub/ntp_clock/main_clock.c
The only reference to LWIP in the build command I can see is: -DCYW43_LWIP=0 but there doesn't seem to be a path to the lwip libs - or am I overthinking it ?
My environment was built using the pico installer : pico-setup-windows and using VSCode.
Thoughts ?
Andrew
.
Statistics: Posted by StubbletUK — Wed Apr 10, 2024 3:17 pm