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

Windows10下Raspberry Pi Pico编译报错:cmake_check_build_system不存在及路径空格问题

解决Windows下NMake执行因路径空格导致的U1077错误(RP2040开发环境)

问题根源

你的推测完全正确:路径中包含空格(如C:\Program Files(x86)...)时,NMake会将空格前的部分(C:\Program)当作独立命令,导致命令截断报错。CMake生成Makefile时未对含空格的路径自动添加引号,是触发这个问题的直接原因。

解决方法

方法1:将工具链安装到无空格路径(最省心)

直接把ARM GNU Toolchain和CMake安装到不含空格的目录,比如:

  • ARM工具链:C:\GNUArmToolchain\10_2021.10
  • CMake:C:\CMake\bin

重新运行CMake配置命令即可,无需额外处理:

cmake -G "NMake Makefiles" ..

方法2:CMake配置时手动指定带引号的工具链路径

如果不想重新安装,在CMake配置阶段就明确给含空格的路径加上双引号,强制生成的Makefile包含引号:

cmake -G "NMake Makefiles" ^
-DCMAKE_C_COMPILER="C:\Program Files (x86)\GNU Arm Embedded Toolchain\10 2021.10\bin\arm-none-eabi-gcc.exe" ^
-DCMAKE_CXX_COMPILER="C:\Program Files (x86)\GNU Arm Embedded Toolchain\10 2021.10\bin\arm-none-eabi-g++.exe" ^
-DCMAKE_COMMAND="C:\Program Files\CMake\bin\cmake.exe" ^
..

^是Windows命令行的换行符,方便阅读,也可以写成单行。

方法3:临时修改已生成的Makefile

如果只是临时测试,可直接修改构建目录下的Makefile,给所有含空格的命令/路径加上双引号:
修改你提供的Makefile片段为:

all: cmake_check_build_system
    "$(CMAKE_COMMAND)" -E cmake_progress_start C:\pico\pico-examples\build\CMakeFiles C:\pico\pico-examples\build\\CMakeFiles\progress.marks
    "$(MAKE)" $(MAKESILENT) -f CMakeFiles\Makefile2 /nologo -$(MAKEFLAGS) all
    "$(CMAKE_COMMAND)" -E cmake_progress_start C:\pico\pico-examples\build\CMakeFiles 0
.PHONY : all

注意:此方法是临时方案,重新运行CMake会覆盖修改后的内容。

方法4:使用短路径替代含空格路径

Windows支持短路径格式,可通过dir /x命令查看目录的短路径(比如C:\Program Files (x86)的短路径通常是C:\PROGRA~2),然后在CMake配置或环境变量中使用短路径:

cmake -G "NMake Makefiles" -DCMAKE_C_COMPILER=C:\PROGRA~2\GNUArmEmbeddedToolchain\10_2021.10\bin\arm-none-eabi-gcc.exe ..

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:50:36