You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Raspberry Pi Pico SDK C++项目中无法引用hardware/adc.h头文件的问题

Raspberry Pi Pico SDK C++项目中无法引用hardware/adc.h头文件的问题

嘿,这个问题我折腾Pico SDK的时候也碰到过,其实核心原因是Pico SDK里的硬件相关头文件大多是纯C编写的,C++编译器的处理规则和C不一样,才会出现找不到头文件或者后续链接报错的情况。给你两个靠谱的解决办法:

  • 方法一:用extern "C"包裹头文件
    在你的C代码里包含hardware/adc.h时,把它放在extern "C"块里,告诉C编译器按照C语言的规则解析这个头文件的内容,这样就能正常识别了:

    extern "C" {
    #include "hardware/adc.h"
    }
    
  • 方法二:调整CMakeLists.txt配置
    检查项目的CMake配置文件,确保已经正确添加ADC组件的链接,并且项目同时支持C和C++。比如你的CMakeLists.txt需要包含这些关键内容:

    cmake_minimum_required(VERSION 3.13)
    
    include(pico_sdk_import.cmake)
    
    # 同时声明支持C和C++
    project(your_project_name C CXX)
    
    pico_sdk_init()
    
    add_executable(your_project_name
        main.cpp  # 你的C++主文件
    )
    
    pico_add_extra_outputs(your_project_name)
    
    # 务必把hardware_adc加入链接库列表
    target_link_libraries(your_project_name
        pico_stdlib
        hardware_adc
    )
    

至于为什么C项目里没问题?因为C编译器直接处理纯C头文件,不需要考虑C的名称修饰规则,而且CMake默认会为C项目自动关联相关硬件组件的头文件路径,C项目则需要我们手动明确配置或者用extern "C"来做兼容。

备注:内容来源于stack exchange,提问作者doug

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 17:18:23