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
相关产品推荐
相关产品推荐

