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

使用MinGW编译Raspberry Pi Pico代码时遇Error -1073741511求助

问题

在Windows 10系统的Visual Studio Code中,已按照指南搭建Raspberry Pi Pico的pico_sdk与MinGW工具链,配置均符合要求。但执行mingw32-make编译简单blink代码时,出现Error -1073741511错误,编译SDK自带的blink示例也出现相同问题。

相关代码

CMakeLists.txt

cmake_minimum_required(VERSION 3.13)
include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake)

project(blink)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)

pico_sdk_init()
add_executable(${PROJECT_NAME} main.c)
target_link_libraries(${PROJECT_NAME} pico_stdlib)
pico_add_extra_outputs(${PROJECT_NAME})

main.c

#include "pico/stdlib.h"

int main() {
    const uint led_pin = 25;
    gpio_init(led_pin);
    gpio_set_dir(led_pin, GPIO_OUT);

    while (true) {
        gpio_put(led_pin, true);
        sleep_ms(1000);
        gpio_put(led_pin, false);
        sleep_ms(1000);
    }
}

完整控制台输出

myuser MINGW64 ~/Documents/rpi_pico/C/blink/build
$ cmake -G "MinGW Makefiles" ..
Using PICO_SDK_PATH from environment ('C:\\VSARM\\sdk\\pico\\pico-sdk')
PICO_SDK_PATH is C:/VSARM/sdk/pico/pico-sdk
Defaulting PICO_PLATFORM to rp2040 since not specified.
Defaulting PICO platform compiler to pico_arm_gcc since not specified.
-- Defaulting build type to 'Release' since not specified.
PICO compiler is pico_arm_gcc
-- The C compiler identification is GNU 11.2.1
-- The CXX compiler identification is GNU 11.2.1
-- The ASM compiler identification is GNU
-- Found assembler: C:/VSARM/armcc/11.2-2022.02/bin/arm-none-eabi-gcc.exe
Build type is Release
Defaulting PICO target board to pico since not specified.
Using board configuration from C:/VSARM/sdk/pico/pico-sdk/src/boards/include/boards/pico.h
-- Found Python3: C:/Users/myuser/AppData/Local/Programs/Python/Python310/python.exe (found version "3.10.5") found components: Interpreter
TinyUSB available at C:/VSARM/sdk/pico/pico-sdk/lib/tinyusb/src/portable/raspberrypi/rp2040; enabling build support for USB.
cyw43-driver available at C:/VSARM/sdk/pico/pico-sdk/lib/cyw43-driver
lwIP available at C:/VSARM/sdk/pico/pico-sdk/lib/lwip
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/myuser/Documents/rpi_pico/C/blink/build

myuser MINGW64 ~/Documents/rpi_pico/C/blink/build
$ make
[  1%] Creating directories for 'ELF2UF2Build'
[  2%] No download step for 'ELF2UF2Build'
[  4%] No update step for 'ELF2UF2Build'
[  5%] No patch step for 'ELF2UF2Build'
[  7%] Performing configure step for 'ELF2UF2Build'
-- The C compiler identification is GNU 8.1.0
-- The CXX compiler identification is GNU 8.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/VSARM/mingw/mingw32/bin/gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/VSARM/mingw/mingw32/bin/g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/myuser/Documents/rpi_pico/C/blink/build/elf2uf2
[  8%] Performing build step for 'ELF2UF2Build'
[ 50%] Building CXX object CMakeFiles/elf2uf2.dir/main.cpp.obj
[100%] Linking CXX executable elf2uf2.exe
[100%] Built target elf2uf2
[ 10%] No install step for 'ELF2UF2Build'
[ 11%] Completed 'ELF2UF2Build'
[ 11%] Built target ELF2UF2Build
Scanning dependencies of target bs2_default
[ 13%] Building ASM object pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/compile_time_choice.S.obj
[ 14%] Linking ASM executable bs2_default.elf
[ 14%] Built target bs2_default
[ 16%] Generating bs2_default.bin
[ 17%] Generating bs2_default_padded_checksummed.S
[ 17%] Built target bs2_default_padded_checksummed_asm
Scanning dependencies of target blink
[ 19%] Building C object CMakeFiles/blink.dir/main.c.obj
[ 20%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.c.obj
[ 22%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.c.obj
[ 23%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/hardware_claim/claim.c.obj
[ 25%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_platform/platform.c.obj
[ 26%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/hardware_sync/sync.c.obj
[ 28%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/hardware_irq/irq.c.obj
[ 29%] Building ASM object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/hardware_irq/irq_handler_chain.S.obj
[ 31%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/common/pico_sync/sem.c.obj
[ 32%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/common/pico_sync/lock_core.c.obj
[ 34%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/common/pico_time/time.c.obj
[ 35%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/common/pico_time/timeout_helper.c.obj
[ 37%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/hardware_timer/timer.c.obj
[ 38%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/common/pico_util/datetime.c.obj
[ 40%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/common/pico_util/pheap.c.obj
[ 41%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/common/pico_util/queue.c.obj
[ 43%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/common/pico_sync/mutex.c.obj
[ 44%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/common/pico_sync/critical_section.c.obj
[ 46%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/hardware_uart/uart.c.obj
[ 47%] Building ASM object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/hardware_divider/divider.S.obj
[ 49%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_runtime/runtime.c.obj
[ 50%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.c.obj
[ 52%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/hardware_pll/pll.c.obj
[ 53%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.c.obj
[ 55%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.c.obj
[ 56%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.c.obj
[ 58%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_printf/printf.c.obj
[ 59%] Building ASM object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_bit_ops/bit_ops_aeabi.S.obj
[ 61%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.c.obj
[ 62%] Building ASM object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_divider/divider.S.obj
[ 64%] Building ASM object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_double/double_aeabi.S.obj
[ 65%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.c.obj
[ 67%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_double/double_math.c.obj
[ 68%] Building ASM object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_double/double_v1_rom_shim.S.obj
[ 70%] Building ASM object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.S.obj
[ 71%] Building ASM object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_float/float_aeabi.S.obj
[ 73%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.c.obj
[ 74%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_float/float_math.c.obj
[ 76%] Building ASM object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_float/float_v1_rom_shim.S.obj
[ 77%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.c.obj
[ 79%] Building ASM object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_mem_ops/mem_ops_aeabi.S.obj
[ 80%] Building ASM object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_standard_link/crt0.S.obj
[ 82%] Building CXX object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp.obj
[ 83%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.c.obj
[ 85%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_stdio/stdio.c.obj
[ 86%] Building C object CMakeFiles/blink.dir/C_/VSARM/sdk/pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.c.obj
[ 88%] Linking CXX executable blink.elf
mingw32-make[2]: *** [CMakeFiles\\blink.dir\\build.make:812: blink.elf] Error -1073741511
mingw32-make[2]: *** Deleting file 'blink.elf'
mingw32-make[1]: *** [CMakeFiles\\Makefile2:1384: CMakeFiles/blink.dir/all] Error 2
mingw32-make: *** [Makefile:90: all] Error 2

myuser MINGW64 ~/Documents/rpi_pico/C/blink/build
$

编译SDK自带示例的命令

cd /c/VSARM/sdk/pico/pico-examples/
mkdir build
cd build
cmake -G "MinGW Makefiles" ..
cd blink
make
可能的原因与解决办法

Error -1073741511对应Windows的STATUS_DLL_NOT_FOUND错误,本质是链接阶段依赖的动态库缺失,或者工具链环境配置有问题,针对你的情况可以按以下步骤排查:

  • 检查ARM工具链的完整性
    你使用的arm-none-eabi-gcc版本是11.2.1,需要确认工具链安装包是否完整,是否有文件缺失。可以重新下载官方的ARM GNU工具链(针对Windows版本),覆盖安装到原路径,确保所有组件(包括链接器arm-none-eabi-ld、相关动态库)都存在。

  • 修正CMake生成器的选择
    在Windows下编译Pico项目,推荐使用"NMake Makefiles"或者直接使用Pico官方推荐的Developer Command Prompt环境,而非"MinGW Makefiles"。因为MinGW的make工具可能和ARM交叉编译工具链的兼容性不佳。尝试删除现有build目录,重新执行:

    mkdir build && cd build
    cmake -G "NMake Makefiles" ..
    nmake
    
  • 检查环境变量配置
    确保ARM_GCC_PATH已正确设置为你的arm-none-eabi-gcc所在的bin目录(即C:/VSARM/armcc/11.2-2022.02/bin),并且该路径已添加到系统的PATH环境变量中。同时确认PICO_SDK_PATH的路径没有空格或特殊字符,避免路径解析错误。

  • 关闭杀毒软件或防火墙的拦截
    部分杀毒软件可能会误判ARM工具链的动态库为恶意文件并隔离,导致链接阶段无法找到依赖库。可以临时关闭杀毒软件,或者将ARM工具链目录添加到杀毒软件的信任列表中。

  • 验证工具链的基本功能
    在命令行中执行arm-none-eabi-gcc --version和arm-none-eabi-ld --version,确认工具链能正常启动且无报错。如果执行这些命令时也出现相同的错误,说明工具链本身安装或环境配置存在问题,需要重新安装或修复环境变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:27:17