[STM32F4] 如何解决 STM32CubeIDE 编译错误?

[复制链接]
13|10
封存into 发表于 2026-2-14 23:22 | 显示全部楼层 |阅读模式

重新安装操作系统Windows 10并将 Cube IDE 安装至 1.10 版本后,我无法编译此前正常的项目。
错误如下
d:\program files (x86)\st\stm32cubeide_1.10.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-10.win32_1.0.0.202601181127\tools\arm-none-eabi\bin\ld.exe: cannot find crti.o: No such file or directory

d:\program files (x86)\st\stm32cubeide_1.10.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-10.win32_1.0.0.202601181127\tools\arm-none-eabi\bin\ld.exe: cannot find crtbegin.o: No such file or directory

d:\program files (x86)\st\stm32cubeide_1.10.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-10.win32_1.0.0.202601181127\tools\arm-none-eabi\bin\ld.exe: cannot find crt0.o: No such file or directory

collect2.exe: error: ld returned 1 exit status

公羊子丹 发表于 2026-2-15 07:39 | 显示全部楼层
这问题我重装CubeIDE后也碰到过,大概率是GCC工具链的路径出问题了,你检查下项目属性里的MCU->Build->Toolchain Path,是不是指向了正确的arm-none-eabi/bin目录,没指对就会找不到这些crt文件。
周半梅 发表于 2026-2-15 07:40 | 显示全部楼层
我怀疑是你装CubeIDE的时候路径带了空格,Program Files (x86)这个空格特容易让工具链识别出问题,你试试把CubeIDE重装到根目录比如D:\STM32CubeIDE,不带任何空格和特殊字符再试试。
帛灿灿 发表于 2026-2-15 07:42 | 显示全部楼层
这报错是链接器找不到启动相关的crt文件,大概率是工具链安装不完整,你打开CubeIDE的Help->Install New Software,检查下GNU Tools for STM32的插件是不是完整安装了,缺了就补上。
童雨竹 发表于 2026-2-15 07:43 | 显示全部楼层
兄弟你这是重装系统后环境变量的坑吧?STM32CubeIDE的工具链需要的环境变量没自动配置,你手动把arm-none-eabi的bin路径加到系统PATH里,重启IDE再编译应该能解决。
万图 发表于 2026-2-15 07:44 | 显示全部楼层
我建议你先新建一个简单的STM32F4空项目编译试试,如果空项目也报这错,那就是IDE或工具链本身的问题;如果空项目能编译,就是旧项目的配置没适配新IDE版本,重新生成Makefile就行。
Wordsworth 发表于 2026-2-15 07:45 | 显示全部楼层
有没有可能是你重装后,旧项目的.build文件夹里的缓存文件和新IDE冲突了?你把项目里的.build和Debug文件夹全删掉,再右键项目Clean Project后重新编译,试试能不能解决。
Bblythe 发表于 2026-2-15 07:46 | 显示全部楼层
这问题挺常见的,1.10版本的CubeIDE工具链偶尔会有安装校验问题,你打开STM32CubeIDE的安装目录,直接去arm-none-eabi/lib里看看有没有crt开头的文件,没有就是工具链丢文件了,得修复安装。
Pulitzer 发表于 2026-2-15 07:46 | 显示全部楼层
我好奇你重装系统后是不是没以管理员身份装CubeIDE?权限不够的话,工具链的部分文件可能没成功解压,你卸载后用管理员身份重新安装,安装过程中别改任何默认路径试试。
Uriah 发表于 2026-2-15 07:47 | 显示全部楼层
你可以试试在CubeIDE里右键项目,选择Properties->C/C++ Build->Settings,在Linker的Miscellaneous里,手动添加工具链的lib路径,把crt文件所在的目录加进去,链接器就能找到了。
Clyde011 发表于 2026-2-15 07:49 | 显示全部楼层
其实这个问题还有个快捷解决办法,直接去STM32官网单独下载对应版本的GNU ARM工具链,手动配置到CubeIDE里,替换掉自带的工具链,比修复自带的要快,我之前就是这么搞定的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

118

主题

176

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
0