Keil5在编译过程中出现.cannot open source input file "xxx.h": No such file or directory的问题

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

很多人已经知道的方法是:

1,点击这个图标

2,在C/C++选项卡下面的Include Path中添加.h文件。

但还有一种情况,我们已经添加了该文件的路径,编译之后还是会出现这种问题,这时候或许你在引用头文件的时候是这样引用的:

此时,你需要再把包含头文件的arch文件夹的上层文件夹也添加到C/C++选项卡下面的Include Path中,我这里arch文件夹包含在LWIP文件夹下,添加之后编译OK!

如果已经添加.h文件路径,且确认文件路径没有问题的情况下,编译仍然报错,cannot open source input file "xxx.h": No such file or directory的情况下,将包含头文件的上层文件夹添加到C/C++选项卡下面的Include Path中再做尝试。

Keil5生成bin文件遇到no such file or directory 使用keil5生成bin文件时遇到无法正常生成的问题。按照该教程,同时可以把hex文件bin文件和object文件全部分开,方便日后查找 阅读详情

相关推荐

KEIL5嵌入式开发全解析:从安装配置到STM32工程实战

集成开发环境(IDE)是嵌入式软件开发的核心平台,它通过集成编译器、调试器和项目管理工具,将源代码高效转换为可在微控制器上运行的机器码。其工作原理在于提供一个统一的图形化界面,管理从代码编写、编译构建到硬件调试的完整工具链。对于嵌入式开发而言,一款优秀的IDE能显著提升开发效率、降低学习曲线,并确保代码与硬件平台的兼容性。在ARM Cortex-M系列微控制器开发领域,KEIL MDK(常称KEIL5)因其与ARM生态的深度整合、稳定的调试性能和丰富的设备支持包(DFP),成为工程师广泛采用的解决方案。它尤

weixin_30345577的博客 490

关于 cannot open source input file...No such file or directory 相关报错解决方式

首先还是要看报错的信息内容。比如:“ no source”:Error: #5: cannot open source input file " ..\..\..\Utilities\STM32_EVAL\Common\stm32_eval_spi_flash.c":No such file or directory. 详细如下所示: ...

JohnnyTim的博客 4万+

C语言头文件与源文件关系详解:从编译原理到工程实践

在C语言编程中,头文件与源文件的组织是模块化设计的核心基础。从编译原理角度看,头文件负责声明接口,源文件负责实现功能,通过预处理器的文本替换机制形成编译单元。这一分工机制直接影响编译效率与代码可维护性,是解决重复包含、循环依赖等常见问题的关键。理解头文件守卫、前置声明等核心技术,能够有效避免链接错误,提升项目架构清晰度。本文结合工程实践,深入解析头文件与源文件的协作关系,帮助开发者构建健壮的C语言项目结构。

weixin_30301449的博客 282

解决keilNo such file or directory编译时找不到文件的方法

keil就是提示找不到相应文件,但实际上路径下是可以找到相应的文件的,而且keil中路径也是设置对的。原因就是因为文件路径太深了

学霸家有事的博客 1万+

Keil5编译过程中出现.cannot open source input filexxx.h“: No such file or directory问题

stm32项目中经常会copy一下别人的写的驱动函数,在移植到自己的项目中编译器找不到.h就会出现这样的错误。或者自己新建.c和.h同样要让编译器知道存放的地址。

xddwg521125的博客 8141

error: #5: cannot open source input file “sys.h“: No such file or directory 解决办法

把“sys.c”和“sys.h”这两个文件复制到我工程“user”文件夹下的“sys”文件夹内,这个文件夹用于存放一些外设等东西的.c、.h文件。其实这个错误的意思是没有找到“sys.h”这个文件,我复制的程序中用到了这个文件,而我的工程里面没有这个文件。复制进去之后,再回到工程内,把这两个.c、.h文件添加进去,右击“user”添加即可。好,这一步完成之后就可以了,编译已经不会再报错了。接下来,继续添加,按照方框顺序自上而下操作即可。这一类型的其他问题解决办法大同小异,添加文件即可。那么添加一下就好了。

ChenWenHaoHaoHao的博客 2万+

STM32】Keil5编译过程中出现.cannot open source input filexxx.h“: No such file or directory问题

问题描述 main.c(10): error: #5: cannot open source input file “led.h”: No such file or directory 解决办法 1、点击这个图标 2、在C/C++选项卡下面的Include Path中添加.h文件 重新编译通过 3、检查是否包含进来,并且能不能打开 4、其它情况 如果已经添加.h文件路径,且确认文件路径没有问题的情况下,编译仍然报错,cannot open source input filexxx.h”

废人一枚的博客 11万+

解决 Keil MDK 编译报错:error: #5: cannot open source input filexxx.h“

在基于 Keil MDK 进行 STM32 等嵌入式项目开发时,很多开发者都会遇到error: #5: cannot open source input file "xxx.h": No such file or directory这个经典编译错误。本质上这个错误的核心是编译器在指定的路径中找不到你代码里#include引用的头文件,本文将从原因分析、分步解决、避坑技巧三个维度,彻底解决这个问题

有道无术, 术尚可求。有术无道, 止于术。 4066

02_Keil5报错 error: #5: cannot open source input fileXXX.h”: No such file or directory解决方法

error: #5: cannot open source input fileXXX.h”: No such file or directory

Yuanghxb的博客 2万+

cant file keil open_Keil5编译过程中出现.cannot open source input file "xxx.h": No such file or directory的问...

1,点击这个图标 2,在C/C++选项卡下面的Include Path中添加.h文件。 但还有一种情况,我们已经添加了该文件的路径,编译之后还是会出现这种问题,这时候或许你在引用头文件的时候是这样引用的: 此时,你需要再把包含头文件的arch文件夹的上层文件夹也添加到C/C++选项卡下面的Include Path中,我这里arch文件夹包含在LWIP文件夹下,添加之后编译OK!如果已经添加.h文件...

weixin_29190573的博客 1486

KEIL MDK与STM32库环境搭建:从零到点灯的全流程避坑指南

在嵌入式系统开发中,集成开发环境(IDE)和硬件抽象层(HAL)是构建稳定软件基础的核心工具链。其原理在于通过统一的API接口封装底层硬件寄存器操作,将开发者从复杂的硬件细节中解放出来,从而显著提升开发效率和代码可移植性。这一技术组合对于快速原型开发和产品迭代具有重要价值,广泛应用于物联网设备、工业控制、消费电子等场景。本文聚焦于KEIL MDK这一ARM官方推荐的IDE,结合STM32的HAL库与标准外设库,通过STM32CubeMX工具进行图形化配置,详细解析如何从软件安装、工程创建、库文件导入到编译

weixin_30614109的博客 380

STM32F401标准库工程搭建全指南:从零构建可编译模板与避坑详解

在嵌入式开发领域,标准外设库(Standard Peripheral Library)是连接微控制器硬件与应用层软件的关键桥梁,它提供了一套直接操作寄存器的API,让开发者能够更精细地控制硬件资源。其工作原理是通过封装底层寄存器操作,提供统一的函数接口,从而简化开发流程并提升代码可移植性。对于追求性能与直接硬件控制的场景,如实时控制系统、电机驱动等,标准库因其高效、低开销的特性而备受青睐。本文聚焦于STM32F401系列Cortex-M4芯片,针对开发者在环境搭建中常遇到的编译错误、头文件路径配置等痛点,提

weixin_34293911的博客 298

Keil MDK-ARM从零到精通:STM32开发环境搭建与工程实践全攻略

集成开发环境(IDE)是嵌入式软件开发的核心工具,它通过整合编辑器、编译器、调试器等模块,极大提升了代码编写、构建和调试的效率。Keil MDK-ARM作为ARM Cortex-M系列微控制器的主流开发平台,其价值在于提供了针对特定芯片的完整工具链和丰富的中间件支持,广泛应用于消费电子、工业控制、物联网设备等场景。本文聚焦于STM32F103等热门MCU,深入解析Keil MDK的安装、芯片支持包(DFP)管理、工程创建、代码调试等核心环节,并针对“Keil注册机”等高频搜索热词,强调使用官方评估版的重要性

chuange6363的博客 413

STM32标准库工程模板搭建指南:从零构建可移植嵌入式项目

在嵌入式系统开发中,清晰的工程结构是提升开发效率和代码可维护性的基石。通过合理的目录规划与模块化设计,开发者可以构建出易于移植和扩展的项目框架。其核心原理在于分离硬件驱动、业务逻辑与中间件,实现代码的高内聚低耦合。这种标准化的工程实践能显著降低后续功能迭代与调试的复杂度,尤其适用于需要长期维护或跨平台移植的嵌入式产品。本文以STM32F4系列微控制器为例,结合Keil MDK-ARM开发环境,详细解析如何从零搭建一个基于标准外设库(SPL)的工程模板,涵盖目录结构设计、关键文件配置、编译调试技巧等全流程,为

weixin_34194087的博客 491

RT-Thread项目构建:使用SCons自动化生成MDK工程与系统裁剪指南

在嵌入式开发中,构建工具是连接源代码与可执行程序的关键桥梁,它负责自动化处理编译、链接和文件组织等复杂流程。SCons作为一款基于Python的现代化构建系统,通过声明式脚本定义构建规则,能够智能分析文件依赖关系,实现跨平台的一致构建体验。其技术价值在于提升大型项目的可维护性和团队协作效率,尤其适用于模块化程度高的嵌入式实时操作系统。在RT-Thread开发场景中,SCons不仅用于自动化生成Keil MDK工程文件,还深度集成menuconfig图形化配置工具,实现对操作系统组件的灵活裁剪。本文聚焦于SC

weixin_33725515的博客 373

STM32F207开发环境搭建:从标准外设库到MDK工程实战指南

在嵌入式系统开发中,微控制器(MCU)是核心处理单元,其开发环境的搭建直接影响项目效率与代码质量。基于ARM Cortex-M内核的STM32系列因其丰富的外设和成熟的生态被广泛应用。开发环境通常涉及工具链配置、工程结构设计、库文件管理以及调试优化等关键环节。对于STM32F207这类高性能MCU,其120MHz主频、以太网MAC、USB OTG等增强外设为工业控制和物联网网关等场景提供了可靠硬件基础。本文聚焦于使用MDK-ARM工具链,结合标准外设库(StdPeriph_Lib),详细讲解如何从零构建一个

weixin_30512043的博客 433

STM32 USB设备开发:寻找与集成官方V4.1.0固件库全攻略

在嵌入式系统开发中,USB通信协议是实现设备与主机数据交互的核心技术之一。其原理基于一套标准化的请求、描述符和端点机制,通过枚举过程建立连接。对于资源受限的微控制器项目,直接操作寄存器或使用轻量级固件库能有效控制代码体积并提升执行效率,这在实时性要求高的场景中尤为重要。STM32系列MCU的早期标准外设库(SPL)便提供了这样的底层控制能力,其中针对USB全速设备的官方驱动库(如STM32_USB-FS-Device_Lib_V4.1.0)曾是实现自定义HID、虚拟串口等功能的经典选择。尽管ST现已主推基于

weixin_34221775的博客 399

开源贡献实战指南:从 Git 入门到第一个 Pull Request

开源贡献本质上是工程协作能力的体现,其核心不在于编写新功能,而在于理解项目上下文、精准修复问题并完成标准化交付。Git 是支撑这一过程的底层状态管理系统,掌握工作区、暂存区与仓库三者间的状态流转,比死记命令更重要;Pull Request 则是结构化沟通协议,涵盖自动化检查(CI)、人工评审(Code Review)和社区讨论三层验证机制。通过修文档、补测试等低风险入口,结合 good-first-issue 项目筛选、Conventional Commits 提交规范和本地验证闭环,开发者可在两小时内完成

weixin_34214500的博客 447

VSCode+EIDE嵌入式开发实战:STM32高效工程搭建与调试

嵌入式开发中,传统IDE如Keil5在跨平台支持、Git协作、构建系统开放性等方面存在明显局限。现代嵌入式工具链正向标准化、可编程、可复现方向演进,CMake构建系统与VSCode编辑器成为主流选择。EIDE作为关键增强插件,通过解析compile_commands.json实现深度上下文感知,打通代码导航、智能补全与Cortex-Debug调试能力,显著提升STM32等Cortex-M系列开发效率。其技术价值在于解耦构建逻辑与开发体验,支持HAL库集成、多芯片适配、SVD寄存器可视化等工程级需求,适用于工

weixin_33700350的博客 385
上一篇: C#中将DataGridView中的数据导入到Csv文件中
下一篇: STM32在C文件中使用C++文件时,编译错误Error:identifier "class" is undefined
una_550643601
博客等级 码龄9年 14粉丝 7原创
评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值