当前位置: 首页 > news >正文

【esp32程序编译提示undefined reference to ‘xxxx‘】

案例1:

【背景】
在使用SquareLine Studio设计UI时,成功导出UI代码,在编译代码的时候提示undefined reference to ‘ui_img_1869164015’,有一个变量无法识别,没有定义。
在这里插入图片描述
【定位步骤】
1.首先找到用这个变量的.c文件,位置
2.查看此.c文件包含的头ui.h文件中有没有变量ui_img_1869164015的定义 声明,发现有
3.然后就奇怪了,为什么编译说没有呢?

4.原因是在CMakeList.txt中没有加入入编译这个ui_img_1869164015.c这个文件。因为在LVGL重新生成的ui代码,多了这个文件
没有把新的.c加入编译

案例2:

同样报错如下:
在这里插入图片描述
main中调用的Bluetooth_int 函数在bluetooth.c中,也包含了头文件,但是编译就报错。
原因是bluetooth.c文件虽然存在,但是没有编译它
需要再CmakeLists.txt中添加编译(前面为了调试临时屏蔽了蓝牙相关内容,同时把bluetooth.c取消编译),等再次需要打开蓝牙时,确忘记添加到CmakeLists.txt中进行编译。
如下,添加即可,同时menuconfig中打开蓝牙相关开关项
在这里插入图片描述
总结:
属于低级错误,操作系统编程和裸机MCU不一样,esp32这里使用的Freertos系统,依赖CMake 做编译构建框架,.c文件必须加入CMakeList.txt才能被编译。


http://www.mrgr.cn/news/4412.html

相关文章:

  • 线程池介绍
  • 七个电脑数据恢复方法:教你如何恢复电脑上误删除的文件
  • 【css】伪元素实现图片个悬停文字聚焦效果
  • 引领未来的NVR方案:海思3520D芯片与全套NVR模组源代码解析
  • 内网安全:跨域攻击
  • SpringBoot依赖之Spring Data Redis 一 List 类型
  • 安科瑞光储充一体化管理系统在直流快速充电站中的解决方案
  • JavaScript 手写仿filter
  • SQL每日一练-0821
  • 提交代码时解决冲突之思路
  • Cookie和Session是什么?它们的区别是什么?
  • 海山数据库(He3DB)+AI:(一)神经网络基础
  • 苍穹外卖之菜品管理
  • java枚举
  • 推荐一款低成本 小尺寸数字脉冲编码调制(PCM)输入D类功率放大器 MAX98357AETE+T 兼具AB类性能
  • 程序员如何平衡日常编码工作与提升式学习?
  • R中6种读入表格数据的方式哪个最快?结果出人意料!
  • 2408gui,分层窗口1
  • Android studio制作一个高仿计算器小demo
  • 2024年游泳耳机哪个牌子好?四大热门游泳耳机多维测评盘点!