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添加自己的头文件后无法找到的问题 的相关文章

  • VSCode如何设置终端工作目录

    文章目录 前言 固定工作目录 Terminal Here 注意 前言 相信大家在使用VSCode的时候 都会有如下难受的感觉 每次打开终端的时候工作目录都是用户目录 如果要执行命令还得cd到当前文件夹 十分麻烦 为了提高工作效率 有必要设置
  • ESP32-AT指令学习笔记

    目录 前言 一 硬件和软件准备 二 使用步骤 1 下载固件 2 接线 总结 前言 针对 ESP32 芯片 实现了一些常用的 AT 指令集 链接地址为 ESP32 AT指令集 该指令集可用于用户 MCU PC 同 ESP32 进行交互 也适用
  • VsCode远程调试服务器python代码(解决相对路径相关问题)

    1 首先在本地使用VsCode调试python代码 可参考链接 VSCode启动Debug模式调试Python文件 2 vscode远程连接服务器 调试python文件 可参考链接 一文掌握vscode远程调试python代码 3 调试时
  • cpplint在VS Code中的安装及使用

    目录 前言 Python环境的配置 在VS Code中安装相应插件 补充 如何将VS Code默认的格式化风格改为Google风格 相关链接 前言 cpplint是一款Google的代码检查工具 确定一种编码风格对于我们有非常大的帮助 也可
  • ESP32学习笔记05-串口事件方式读取数据

    串口中断方式处理数据 事件机构体 typedef struct uart event type t type lt UART event type size t size lt UART data size for UART DATA ev
  • VSCode 插件安装:中文(简体)语言包(附带:不生效解决方案)

    文章目录 VSCode 安装插件 中文 简体 语言包 中文语言包不生效解决方案 打开 命令面板 配置显示语言 选择中文 重启VSCode 效果 中文界面 VSCode 安装插件 中文 简体 语言包 插件市场搜索 中文 选择如下插件安装 Ch
  • cmake中的编译选项

    CMake是一个跨平台的构建系统 它可以根据简单的配置文件生成各种平台的构建工具 例如Makefile Visual Studio项目文件等 CMake使用CMakeLists txt文件来描述项目的构建规则和依赖关系 在这个文件中 可以设
  • vscode实现文件单步调试保姆级教程

    第一步 第二步 第三步 第四步 第五步 第六步 第七步 第八步 第九步 第十步 点击终端 gt 配置任务 第十一步 第十二步 第十三步 第十四步 设置完毕 可以在源程序打断点按F5执行了
  • Visual Studio Code 的安装教程和配置C语言环境(详解版)

    最近想装一个VS Code 来写C C 程序 但是看了网上的很多教程发现并不是那么的好 大部分都尝试失败了 摸索了很久找到了一个比较可靠的方法 目录 一 Visual Studio Code 的安装教程 二 接下来就是C语言的环境配置 三
  • VScode配置文档

    vscode配置 常用插件 View In Browser 预览页面 ctrl F1 vscode icons 侧栏的图标 对于一个有视觉强迫症的人是必须要的 HTML Snippets 支持HTML5的标签提示 JS CSS HTML F
  • ESP32开发阶段启用 Secure Boot 与 Flash encryption

    Secure Boot 与 Flash encryption详情 请参考 https blog csdn net espressif article details 79362094 1 开发环境 AT版本 2 4 0 0 发布 IDF 与
  • VSCode设置中文

    https www somode com softjc 30980 html
  • vscode调试mit6s081Lab

    环境 mit6 s081的实验环境 gdb multiarch 用于gdb调试 vscode调试实质上就是提供个图形化页面 底层还是这个 安装 gdb multiarch sudo apt get install gdb multiarch
  • 人工智能计算机视觉:解析现状与未来趋势

    导言 随着人工智能的迅速发展 计算机视觉技术逐渐成为引领创新的关键领域 本文将深入探讨人工智能在计算机视觉方面的最新进展 关键挑战以及未来可能的趋势 1 简介 计算机视觉是人工智能的一个重要分支 其目标是使机器具备类似于人类视觉的能力 这一
  • vscode开发python环境配置

    前言 vscode作为一款好用的轻量级代码编辑器 不仅支持代码调试 而且还有丰富的插件库 可以说是免费好用 对于初学者来说用来写写python是再合适不过了 下面就推荐几款个人觉得还不错的插件 希望可以帮助大家更好地写代码 安装CPytho
  • VSCode 代码高亮 变量类型、函数名、类名没有颜色 - 设置主题即可

    https zhuanlan zhihu com p 630401039 之前应该设置主题了 但不知道为啥C 里面只有 int 有高亮 其他像 cv Mat 函数名 类名都没有颜色 解决方案是重新设置一下主题 File preference
  • VSCode 代码高亮 变量类型、函数名、类名没有颜色 - 设置主题即可

    https zhuanlan zhihu com p 630401039 之前应该设置主题了 但不知道为啥C 里面只有 int 有高亮 其他像 cv Mat 函数名 类名都没有颜色 解决方案是重新设置一下主题 File preference
  • vscode插件离线安装地址

    因内网开发 编辑器不可联网 插件需要离线安装 vscode插件商店 Extensions for Visual Studio family of products Visual Studio Marketplace
  • 【ESP32接入国产大模型之文心一言】

    1 怎样接入文心一言 随着人工智能技术的不断发展 自然语言处理领域也得到了广泛的关注和应用 在这个领域中 文心一言作为一款强大的自然语言处理工具 具有许多重要的应用价值 本文将重点介绍如何通过ESP32接入国产大模型之文心一言api 以及其
  • 使用什么 ffmpeg 命令将无符号整数列表转换为音频文件?

    我有一个文件 其中包含大约四万个整数的列表 这些整数以空格分隔 每个整数的值都在 0 到 255 之间 这里是这个文件 https github com johnlai2004 sound project blob master integ

随机推荐

  • 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