CMake编译树莓派Pico项目无报错,但未生成UF2文件
Raspberry Pi Pico编译无错误但找不到.uf2文件的解决方案
问题描述
编译Raspberry Pi Pico的Hello World程序时无报错,但找不到可用于烧录的.uf2文件,相关代码如下:
HelloWorld.cpp
#include <stdio.h> #include "pico/stdlib.h" int main() { stdio_init_all(); while(true) { printf("Hello world! \n"); sleep_ms(1000); } }
CMakeLists.txt
cmake_minimum_required(VERSION 3.12) # initialize the SDK based on PICO_SDK_PATH # note: this must happen before project() include(pico_sdk_import.cmake) project(HelloWorld C CXX ASM) set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) # initialize the Raspberry Pi Pico SDK pico_sdk_init() # rest of your project add_executable(HelloWorld HelloWorld.cpp ) # Add pico_stdlib library which aggregates commonly used features target_link_libraries(HelloWorld pico_stdlib) # enable usb output, disable uart output pico_enable_stdio_usb(HelloWorld 1) pico_enable_stdio_uart(HelloWorld 0) # create map/bin/hex/uf2 file in addition to ELF. pico_add_extra_outputs(HelloWorld)
排查与解决步骤
- 确认编译路径:
.uf2文件默认生成在编译目录下,若使用常规的out-of-source编译流程,文件应位于build/HelloWorld.uf2(需先创建build文件夹并在其中执行编译操作)。 - 执行完整编译流程:确保按标准步骤完成编译:
- 在项目根目录创建build文件夹:
mkdir build && cd build - 生成编译配置文件:
cmake .. - 启动编译:
make -j4(-j4为多线程编译参数,可根据CPU核心数调整)
- 在项目根目录创建build文件夹:
- 检查CMake指令格式:确认
pico_add_extra_outputs(HelloWorld)指令无多余空格或语法错误,这条指令是生成.uf2等额外输出文件的核心配置。 - 验证SDK导入有效性:确保
pico_sdk_import.cmake文件在项目根目录,且PICO_SDK_PATH环境变量已正确指向Raspberry Pi Pico SDK的安装路径,否则编译过程可能未触发.uf2的生成逻辑。
内容的提问来源于stack exchange,提问作者Chris22
相关产品推荐
相关产品推荐

