RPi Pico:致命错误 arch/sys_arch.h 没有这样的文件或目录

问题描述 投票:0回答:2

我正在尝试使用 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 )

帮助!请!!!

lwip raspberry-pi-pico
2个回答
1
投票

回答我自己的问题(在清空发誓罐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 )

0
投票

我可以得到解释吗? 我正在处理类似的问题,尝试在 Raspberry Pi Pico 上将 LWIP 与 FreeRTOS 结合使用。 我看到的差异是从 include_directories 中删除了 LWIP 文件夹,以及从 target_link_libraries 中删除了 lwip? 这是正确的吗?如果是,为什么会这样?

© www.soinside.com 2019 - 2024. All rights reserved.