[STM32F4] STM32F407VET6 开发板编译报错

[复制链接]
24|10
我的牙白 发表于 2026-4-27 21:52 | 显示全部楼层 |阅读模式
使用内部构建器进行编译
gcc -O0 -g3 -Wall -c -fmessage-length=0 -o "Core\\Src\\system_stm32f4xx.o" "..\\Core\\Src\\system_stm32f4xx.c"

..\Core\Src\system_stm32f4xx.c:48:23: fatal error: stm32f4xx.h: No such file or directory #include "stm32f4xx.h"
我已经添加了 stm32f4xx.h 文件,编译器却提示找不到它。

jcky001 发表于 2026-4-28 12:34 | 显示全部楼层
检查一下头文件路径里是不是有中文或者空格
elephant00 发表于 2026-4-28 12:36 | 显示全部楼层
检查文件大小是不是0KB
spicy 发表于 2026-4-28 13:08 | 显示全部楼层
预定义宏可能没设对,STM32F407xx这个宏必须定义,否则头文件里很多条件编译的内容就被砍掉了。
classroom 发表于 2026-4-28 13:34 | 显示全部楼层
别用#pragma once这种非标准写法,标准写法是#ifndef XXX_H,两个写法混在一起也容易出识别问题。
今天会画卧蚕吗 发表于 2026-4-28 16:04 | 显示全部楼层
换个工程模板试试,用STM32Cube官方生成一个最简单的空白工程,把代码拷过去,别自己手搓Include路径。
cr315 发表于 2026-4-28 16:34 | 显示全部楼层
CubeMX生成的工程从来不会自己丢头文件路径,如果你是自己手搭的工程,那就全路径检查一遍。
duo点 发表于 2026-4-28 18:35 | 显示全部楼层
stm32f4xx.h这个头文件在StdPeriph库和HAL库里路径不一样,别把两个库的路径加混了,头文件内容也不一样。
jcky001 发表于 2026-4-28 19:36 | 显示全部楼层
你加的是文件夹路径还是文件路径?
onlycook 发表于 2026-4-28 21:37 | 显示全部楼层
建议临时用绝对路径试一下,比如C:\MyProject\Drivers\CMSIS\Include,如果能编译了,就说明是相对路径写法的问题。
powerantone 发表于 2026-4-28 22:37 | 显示全部楼层
你的GCC版本可能太老了,更新到arm-none-eabi-gcc 10以上版本,旧版本对长路径名支持有问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

135

主题

136

帖子

0

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