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

Windows系统Eclipse环境下编译Raspberry Pico代码失败求助

Raspberry Pico Eclipse编译Blink示例失败:CMake错误选择编译器与Make工具

在Windows 10的Eclipse中搭建Raspberry Pico开发环境,软件安装过程顺利,但编译blink示例时出现大量错误。错误信息显示CMake错误选用了C:/Programs/MinGW/bin/gcc.exe,该编译器无法编译测试程序;系统中存在多个make.exe和gcc.exe,即使在Eclipse项目设置中指定了自定义make.exe,仍会选择错误的工具。

错误日志

15:19:01 **** 项目pico blinky的Default配置增量构建 ****
"C:\Programs\GnuMake\make" all 
PICO_SDK_PATH 为 C:/Programs/Pico/pico-sdk
PICO 平台为 rp2040。
-- C编译器标识为 GNU 11.3.1
-- CXX编译器标识为 GNU 11.3.1
-- ASM编译器标识为 GNU
-- 找到汇编器: C:/Program Files (x86)/Arm GNU Toolchain arm-none-eabi/11.3 rel1/bin/arm-none-eabi-gcc.exe
-- Eclipse版本设置为3.6 (Helios)。如果不正确请调整CMAKE_ECLIPSE_VERSION。
构建类型为 Debug
使用常规优化调试构建(设置PICO_DEOPTIMIZED_DEBUG=1可关闭优化)
PICO目标板为 pico。
使用来自C:/Programs/Pico/pico-sdk/src/boards/include/boards/pico.h的板卡配置
-- 找到Python3: C:/Program Files/Python310/python.exe(找到版本 "3.10.6"),找到组件: Interpreter 
TinyUSB位于C:/Programs/Pico/pico-sdk/lib/tinyusb/src/portable/raspberrypi/rp2040;启用USB构建支持。
编译TinyUSB时使用CFG_TUSB_DEBUG=1
cyw43-driver位于C:/Programs/Pico/pico-sdk/lib/cyw43-driver
lwIP位于C:/Programs/Pico/pico-sdk/lib/lwip
-- 配置完成
-- 生成完成
-- 构建文件已写入: C:/Programs/Pico/pico-examples-eclipse
扫描目标ELF2UF2Build的依赖项
[  0%] 执行'ELF2UF2Build'的配置步骤
-- C编译器标识为 GNU 6.3.0
-- CXX编译器标识为 GNU 6.3.0
-- Eclipse版本设置为3.6 (Helios)。如果不正确请调整CMAKE_ECLIPSE_VERSION。
-- 检测C编译器ABI信息
-- 检测C编译器ABI信息 - 失败
-- 检查可用的C编译器: C:/Programs/MinGW/bin/gcc.exe
-- 检查可用的C编译器: C:/Programs/MinGW/bin/gcc.exe - 损坏
CMake错误位于C:/Program Files/CMake/share/cmake-3.19/Modules/CMakeTestCCompiler.cmake:66 (message):
  C编译器

    "C:/Programs/MinGW/bin/gcc.exe"

  无法编译简单测试程序。

  失败输出如下:

    切换目录: C:/Programs/Pico/pico-examples-eclipse/elf2uf2/CMakeFiles/CMakeTmp
    
-- 配置未完成,发生错误!
另见 "C:/Programs/Pico/pico-examples-eclipse/elf2uf2/CMakeFiles/CMakeOutput.log"。
    执行构建命令(s):C:/PROGRA~2/EMBARC~1/Studio/16.0/bin/make.exe cmTC_62d89/fast && MAKE Version 5.41  Copyright (c) 1987, 2014 Embarcadero Technologies, Inc.
另见 "C:/Programs/Pico/pico-examples-eclipse/elf2uf2/CMakeFiles/CMakeError.log"。
    Error makefile 11: Colon expected
    *** make过程中发生1个错误 ***
        
        

      

  CMake将无法正确生成此项目。
调用栈(最近的调用优先):
  CMakeLists.txt:2 (project)


make[2]: *** [blink/CMakeFiles/ELF2UF2Build.dir/build.make:125: blink/elf2uf2/src/ELF2UF2Build-stamp/ELF2UF2Build-configure] 错误 1
make[1]: *** [CMakeFiles/Makefile2:5121: blink/CMakeFiles/ELF2UF2Build.dir/all] 错误 2
make: *** [makefile:91: all] 错误 2
"C:/Programs/GnuMake/make all" 以退出码2终止。构建可能不完整。

15:19:30 构建失败。3个错误,0个警告。(耗时28s.721ms)

解决方法

  • 调整系统环境变量优先级
    把Arm GNU Toolchain的arm-none-eabi-gcc.exe所在路径(C:/Program Files (x86)/Arm GNU Toolchain arm-none-eabi/11.3 rel1/bin)和你指定的GnuMake路径(C:/Programs/GnuMake)移到系统环境变量PATH的最顶端,确保CMake优先找到正确的工具,而不是MinGW或Embarcadero的版本。

  • 在CMake中强制指定编译器与Make工具
    在Eclipse的项目属性中打开CMake配置,添加以下参数,强制指定交叉编译工具链和Make程序:

    -DCMAKE_C_COMPILER="C:/Program Files (x86)/Arm GNU Toolchain arm-none-eabi/11.3 rel1/bin/arm-none-eabi-gcc.exe"
    -DCMAKE_CXX_COMPILER="C:/Program Files (x86)/Arm GNU Toolchain arm-none-eabi/11.3 rel1/bin/arm-none-eabi-g++.exe"
    -DCMAKE_MAKE_PROGRAM="C:/Programs/GnuMake/make.exe"
    

    添加完成后重新生成CMake缓存,再执行构建。

  • 清理旧缓存并重新构建
    删除项目目录下的CMakeCache.txt文件和编译输出文件夹(如build),然后在Eclipse中执行"Clean"操作,之后重新触发构建,确保CMake重新检测并使用正确的工具链。

  • 单独配置ELF2UF2的Make工具
    错误显示ELF2UF2构建时调用了Embarcadero的make.exe,可以在项目的CMakeLists.txt中添加以下代码,强制为ELF2UF2目标指定正确的Make工具:

    set(CMAKE_MAKE_PROGRAM "C:/Programs/GnuMake/make.exe" CACHE PATH "GNU Make path" FORCE)
    

内容的提问来源于stack exchange,提问作者Hneel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:27:39