ESP32-IDF 使用VSCODE添加自己的头文件后无法找到的问题

2023-05-16

        最近在学习esp32,使用VSCODE进行开发。今天在添加自己的项目文件,编译后,系统提示找不到头文件,找了很久,最终在大佬同事的帮助下才解决,这里记录一下。

情况一(在components文件下添加)

先上报错图片。

        就只在官方的DEMO文件里添加了另外一层文件,就出现这个问题。只多了一层“drv”文件夹,如果不要drv文件夹,把uart移动到components下后编译也是正常的。所以出问题肯定是因为makefile出了问题,无法链接编译到需要的文件夹。

这里使用两种方法进行解决。

        第一种:

        修改工程最外层的makefile和cmakelists.txt连个文件。添加如下代码

        这几句的意思就是让编译器在编译的时候去这几个文件夹下查找需要的文件。

        在project.cmake文件里有对目录的解释

        大概意思就是让编译器在这个目录下进行查找。(具体语句我也不是很清楚,惭愧)

        添加之后编译就可以通过了。

        第二种:

        编译器之所以链接不到,是因为编译器只能检测到components文件夹的第一层子目录下,就是drv文件夹,该文件夹的子目录不会去链接,因为没有cmakelists.txt文件。所以第二种方式就是在drv文件夹下创建cmakelists.txt文件.

        在该文件夹下添加包含的文件,

        这样编译器就能在这里找到drv_uart.c文件了。

        PS:如果采用第一种方法,drv下的cmakelists.txt必须删除掉,否则会报错。语句注释掉也不行。

        个人建议还是用第一种方法,更正规一点。但是说到底都是编译器没有链接到文件,还是自己学艺不精。

        这里要感谢一下同事大佬,感谢文哥。

对了。这个问题并不是很多人说的什么路径问题,我的c_cpp_properties.json文件没有改动。

情况二(在非components文件夹下添加)

        比如我们在IDF提供的,hello_world文件夹下添加一个drv文件。这里我们把hello_world文件夹拷贝为test_project工程。在main的同级目录下创建一个drv目录,在该目录下添加文件。此时编译,发现找不到我们的需要的文件。

        

         此时,在main文件夹下的component.mk文件中,添加如下代码:

COMPONENT_ADD_INCLUDEDIRS := . ../drv
COMPONENT_SRCDIRS		  := . ../drv

        这样就能让编译连链接到drv目录下。此时再make 。不会报错。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP32-IDF 使用VSCODE添加自己的头文件后无法找到的问题 的相关文章

随机推荐

  • vnc远程访问ubuntu18.04桌面系统 vncserver开机自启动

    文章目录 一 windows端准备二 ubuntu端准备三 远程连接桌面四 配置vncserver开机自启动 一 windows端准备 下载TightVNC xff1a https www tightvnc com 二 ubuntu端准备
  • 【STM32学习】定时器寄存器配置、功能工作过程详解

    STM32学习 定时器寄存器配置 功能工作过程详解 零 参考一 引言二 功能以及寄存器说明1 最基本的定时功能 xff08 时基单元 xff09 1 1 框图1 2 工作流程1 3 寄存器介绍1 3 1 CR1寄存器1 3 2 CNT PS
  • 【STM32学习】实时时钟 —— RTC

    STM32学习 实时时钟 RTC 零 参考一 工作原理1 RTC介绍2 工作过程 二 相关寄存器三 代码说明1 rtc初始化2 关于中断3 中断配置代码 xff08 仅供参考 xff09 3 1 秒中断 43 普通闹钟功能3 2 待机模式唤
  • 【JLink仿真器】盗版检测、连接故障、检测不到芯片问题

    JLink仿真器 盗版检测 连接故障 检测不到芯片问题 一 问题描述二 解决方法1 降低驱动 xff08 解决非法问题以及连接故障 xff09 2 SWD引脚被锁 xff08 解决检测不到芯片 xff09 三 说明 一 问题描述 盗版检测
  • 【STM32学习】直接存储器访问——DMA

    STM32学习 直接存储器访问 DMA 零 参考一 对DMA的理解二 DMA通道优先级三 DMA通道x传输数量寄存器 DMA CNDTRx 四 DMA缓冲区设计 零 参考 一个严谨的STM32串口DMA发送 amp 接收 xff08 1 5
  • 【STM32学习】模数转换器——ADC

    STM32学习 模数转换器 ADC 零 参考一 ADC转换耗时二 转换模式三 对某些寄存器的理解1 ADC CR22 ADC SQRX 四 库函数注意事项 零 参考 STM32固件库 xff08 标准外设库 xff09 入门学习 第七章 A
  • 【面试】嵌入式C语言题目整理

    面试 嵌入式C语言题目整理 描述内存四区 内存四区分为 xff1a 代码区 静态区 堆区 栈区 代码区就是用来存放代码的 静态区用来存放全局变量 静态变量 常量 xff08 字符串常量 const修饰的全局变量 xff09 堆区中的内存是由
  • 【总线】IIC学习笔记

    总线 IIC学习笔记 参考链接IIC总线介绍IIC总线时序1 空闲信号2 启动信号与停止信号3 数据的有效性4 应答信号5 七位地址传输 IIC读写过程 xff08 AT24C02举例 xff09 IIC读过程IIC写过程 正点原子IIC驱
  • 树莓派下载及安装PyCharm软件

    运行 PyCharm 需要 Java 环境 xff0c 如果树莓派上还没有安装过 JRE xff0c 可以使用以下命令安装即可 xff1a sudo apt install default jre y PyCharm 有专业版和社区版 专业
  • QT 建立透明背景图像QPixmap

    列将下面背景透明图片1转变成图片2 图1 图2 span class hljs preprocessor include 34 mainwindow h 34 span span class hljs preprocessor includ
  • putty 登录出现Network error: connection time out 解决方案

    今天用putty登录我的linux主机 出现Networkerror connection time out 然后我从linux系统上登录 xff0c 当是没法联网 xff0c pingwww baidu com 则提示 xff1a pin
  • 大端字节序与小端字节序的转换

    逐步加深对字节操作的理解 xff0c 记录一下大端字节序与小端字节序的转换 xff0c 开发环境是vs2010 xff0c 项目类型是控制台输出程序 xff0c 下面是代码实现 xff1a span class token comment
  • c++面试常见问题总结

    近来在面试的过程 xff0c 发现面试官在c 43 43 方面总是喜欢问及的一些相关问题总结 xff0c 当时没怎么答出来 xff0c 或者是答的不怎么全面 xff0c 故而查询相关资料总结下 后面实际工作会进行实时更新信息 lt 一 gt
  • Prometheus(普罗米修斯)架构及原理

    prometheus架构图 xff1a 如上 xff0c prometheus 采集数据的主要方式是 server 通过http请求去 主动拉取 数据 要完成以上需求 xff0c 必须满足以下条件 xff1a server必须知道各种 ex
  • mujoco强化学习模拟环境的安装(windows10)

    最近在学强化学习 xff0c 学长推荐用mujoco来做仿真环境 原本我是想照着教程安装的 结果最近mujoco被DeepMind收购了 xff0c 现在是开源的 xff0c 许多安装步骤都不太一样了 xff0c 所以我就写了这篇安装教程
  • Apple苹果寻物Airtag真实模型拆解及复现stp文件

    Apple苹果寻物Airtag真实模型拆解及复现stp文件 Airtag拆解复现对比 xff1a 欢迎下载stp结构源文件 xff0c 文件可编辑 xff0c 文件下载链接 xff1a https download csdn net dow
  • 使用STM32CubeMX 配置ADC+DAC(DMA)感受

    STM32CubeMX使用感受 开篇先说一下个人使用STM32CubeMX的感受 xff0c 第一点的感受就是STM32CubeMX加速了开发流程 xff0c ST官方的库写的很好 xff0c 在使用之前 xff0c 开发流程一般是打开如正
  • 订单系统设计 —— 重复下单

    一 重复原因 造成重复下单的原因有很多 xff0c 比如用户重复提交 网络超时导致的重试 xff08 网关超时重试 RPC超时重试 xff0c 以及前端超时重试等 xff09 xff0c 下单请求的整个链路都可能造成重复 xff0c 大致可
  • 额温枪查表算法

    目前额温枪这个东西特别火 xff0c 所以大家都在搞这个事情 xff0c 那我也来蹭个热度吧 大概的工作原理 xff1a 热电堆传感器 gt ADC gt MCU gt LCD显示 其实原理很简单 xff0c 那比较麻烦的事情就是温度补偿和
  • ESP32-IDF 使用VSCODE添加自己的头文件后无法找到的问题

    最近在学习esp32 xff0c 使用VSCODE进行开发 今天在添加自己的项目文件 xff0c 编译后 xff0c 系统提示找不到头文件 xff0c 找了很久 xff0c 最终在大佬同事的帮助下才解决 xff0c 这里记录一下 情况一 x