我正在尝试使用 LWIP 让 TCP/IP 在 RPi Pico 上工作 - 特别是获取 HTTP 页面。但我怀疑 CMakeLists.txt 文件存在巨大问题。
我目前遇到的错误是
In file included from /home/src/pico/pico-extras/lib/lwip/src/core/init.c:42:
/home/src/pico/pico-extras/lib/lwip/src/include/lwip/sys.h:95:10: fatal error: arch/sys_arch.h: No such file or directory
我的 CMakeLists.txt 文件是:
cmake_minimum_required( VERSION 3.13 )
include( $ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake )
include( $ENV{PICO_EXTRAS_PATH}/external/pico_extras_import.cmake )
project( ds3231 C CXX ASM )
set( CMAKE_C_STANDARD 11 )
set( CMAKE_CXX_STANDARD 17 )
pico_sdk_init( )
set( SOURCES src/ds3231.cpp )
add_executable( ${CMAKE_PROJECT_NAME} ${SOURCES} )
pico_enable_stdio_usb( ${CMAKE_PROJECT_NAME} 1 )
pico_enable_stdio_uart( ${CMAKE_PROJECT_NAME} 0 )
pico_add_extra_outputs( ${CMAKE_PROJECT_NAME} )
include_directories( $ENV{PICO_EXTRAS_PATH}/lib/lwip/src/include
$ENV{PICO_EXTRAS_PATH}/src/rp2_common/lwip/include
/home/src/pico/ds3231/src
/home/src/pico/picolib/include )
target_compile_definitions( ${CMAKE_PROJECT_NAME} PRIVATE WIFI_SSID=${WIFI_SSID}
WIFI_PASSWORD=${WIFI_PASSWORD} )
target_compile_options( ${CMAKE_PROJECT_NAME} PRIVATE -Wall )
target_link_libraries( ${CMAKE_PROJECT_NAME} pico_stdlib
hardware_i2c
lwip
pico_cyw43_arch_lwip_threadsafe_background
/home/src/pico/picolib/build/libpicolib.a )
帮助!请!!!
回答我自己的问题(在清空发誓罐3次之后):
cmake_minimum_required( VERSION 3.13 )
include( $ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake )
include( $ENV{PICO_EXTRAS_PATH}/external/pico_extras_import.cmake )
project( ds3231 C CXX ASM )
set( CMAKE_C_STANDARD 11 )
set( CMAKE_CXX_STANDARD 17 )
pico_sdk_init( )
set( SOURCES src/ds3231.cpp )
add_executable( ${CMAKE_PROJECT_NAME} ${SOURCES} )
pico_enable_stdio_usb( ${CMAKE_PROJECT_NAME} 1 )
pico_enable_stdio_uart( ${CMAKE_PROJECT_NAME} 0 )
pico_add_extra_outputs( ${CMAKE_PROJECT_NAME} )
include_directories( /home/src/pico/ds3231/src /home/src/pico/picolib/include )
target_compile_definitions( ${CMAKE_PROJECT_NAME} PRIVATE WIFI_SSID=${WIFI_SSID}
WIFI_PASSWORD=${WIFI_PASSWORD} )
target_compile_options( ${CMAKE_PROJECT_NAME} PRIVATE -Wall )
target_link_libraries( ${CMAKE_PROJECT_NAME} pico_stdlib
hardware_i2c
pico_cyw43_arch_lwip_threadsafe_background
/home/src/pico/picolib/build/libpicolib.a )
我可以得到解释吗? 我正在处理类似的问题,尝试在 Raspberry Pi Pico 上将 LWIP 与 FreeRTOS 结合使用。 我看到的差异是从 include_directories 中删除了 LWIP 文件夹,以及从 target_link_libraries 中删除了 lwip? 这是正确的吗?如果是,为什么会这样?