Arduino编译链接找不到其他文件

今天开发一个项目的时候,各个模块编译正常,整合在一起就报错链接失败。

在这里插入图片描述
cwo旨在引用这些模块,但是编译报错



c:/users/mao/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/…/lib/gcc/xtensa-esp32-elf/8.4.0/…/…/…/…/xtensa-esp32-elf/bin/ld.exe: C:\Users\mao\AppData\Local\Temp\arduino\cores\5afa9814f8a8083babeb5ef2faec1bab\core.a(main.cpp.o)😦.literal._Z8loopTaskPv+0x8): undefined reference to loop()' c:/users/mao/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\mao\AppData\Local\Temp\arduino\cores\5afa9814f8a8083babeb5ef2faec1bab\core.a(main.cpp.o): in function loopTask(void*)‘:
C:\Users\mao\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\cores\esp32/main.cpp:48: undefined reference to loop()' c:/users/mao/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\mao\AppData\Local\Temp\arduino\sketches\3BC4900C0C495D7A3DEF063952D7E821\sketch\cwo.ino.cpp.o:(.literal._Z5setupv+0x18): undefined reference to Joystick::begin()’
c:/users/mao/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/…/lib/gcc/xtensa-esp32-elf/8.4.0/…/…/…/…/xtensa-esp32-elf/bin/ld.exe: C:\Users\mao\AppData\Local\Temp\arduino\sketches\3BC4900C0C495D7A3DEF063952D7E821\sketch\cwo.ino.cpp.o:(.literal.startup._GLOBAL__sub_I_joystick+0x4): undefined reference to Joystick::Joystick(int, int, int)' c:/users/mao/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\mao\AppData\Local\Temp\arduino\sketches\3BC4900C0C495D7A3DEF063952D7E821\sketch\cwo.ino.cpp.o:(.literal.startup._GLOBAL__sub_I_joystick+0x8): undefined reference to Button::Button(int)’
c:/users/mao/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/…/lib/gcc/xtensa-esp32-elf/8.4.0/…/…/…/…/xtensa-esp32-elf/bin/ld.exe: C:\Users\mao\AppData\Local\Temp\arduino\sketches\3BC4900C0C495D7A3DEF063952D7E821\sketch\cwo.ino.cpp.o: in function setup()': D:\vscode\ardiuno\cwo/cwo.ino:32: undefined reference to Joystick::begin()’
c:/users/mao/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/…/lib/gcc/xtensa-esp32-elf/8.4.0/…/…/…/…/xtensa-esp32-elf/bin/ld.exe: C:\Users\mao\AppData\Local\Temp\arduino\sketches\3BC4900C0C495D7A3DEF063952D7E821\sketch\cwo.ino.cpp.o: in function _GLOBAL__sub_I_joystick': D:\vscode\ardiuno\cwo/cwo.ino:15: undefined reference to Joystick::Joystick(int, int, int)’
c:/users/mao/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/…/lib/gcc/xtensa-esp32-elf/8.4.0/…/…/…/…/xtensa-esp32-elf/bin/ld.exe: C:\Users\mao\AppData\Local\Temp\arduino\sketches\3BC4900C0C495D7A3DEF063952D7E821\sketch\cwo.ino.cpp.o: in function __static_initialization_and_destruction_0': D:\vscode\ardiuno\cwo/cwo.ino:19: undefined reference to Button::Button(int)’
collect2.exe: error: ld returned 1 exit status

exit status 1

Compilation error: exit status 1



这段报错是说找不到自己写的文件
根据别人的介绍,将这些模块放在一个文件夹(如src)下,就可以找到,可能是因为arduino想要保证同级的文件互相独立,互不影响,出于安全性考虑。
在这里插入图片描述


D:\vscode\ardiuno\cwo\cwo.ino:3:10: fatal error: Adafruit_ST7735.h: No such file or directory
#include <Adafruit_ST7735.h>
^~~~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1

Compilation error: Adafruit_ST7735.h: No such file or directory


出现新错误,库文件本来可以找到,但是现在找不到了
报错没有这个库文件,但是我确实安装过了,后来我查libraries确实没安装,很奇怪,不知道各位有没有遇到这个问题。

后记

include引用头文件,""优先从当前目录找然后再从库文件找,<>从库文件找。

### Arduino IDE 无法检测到板子的解决方案 当遇到Arduino IDE 中无法检测到板子的情况时,可以尝试以下几种方法来解决问题。 #### 检查 USB 连接与设备管理器设置 确认USB线缆已正确连接至计算机和开发板之间。对于Windows操作系统,在设备管理器中查看是否有未知设备或带有黄色感叹号标志的项目存在[^3]。如果有,则可能是由于缺少必要的驱动程序所致;此时应按照官方文档指示安装对应的USB转串口芯片驱动。 #### 配置正确的端口号与处理器型号 在Arduino IDE里通过`工具>端口`选项选取恰当的COM端口,并确保所选条目确实对应着实际接入系统的微控制器单元(MCU)[^4]。另外还需注意选择合适的MCU类型(`工具>开发板`)以匹配使用的具体硬件平台版本。 #### 更新IDE及其扩展包 保持Arduino集成开发环境处于最新状态有助于兼容更多种类的目标板卡并修复潜在漏洞。同时也要记得更新相关库文件以及第三方支持套件(例如ESP8266/ESP32的核心包),这可以通过偏好设置中的附加开发板管理器URLs来进行操作[^2]。 #### 调整核心调试级别 适当调整Arduino IDE 的核心调试等级可以帮助定位更深层次的问题所在。进入`工具>Core Debug Level>`菜单项并将参数设为“Verbose”,以便获取详细的编译上传日志信息用于后续分析处理[^1]。 #### 尝试其他物理层措施 除了上述软件层面的操作外,还可以考虑采取一些简单的物理手段排查故障原因: - 更换不同的USB数据线; - 断开所有可能干扰正常通信的数据接口(比如传感器、显示器等外围电路)后再重试; - 对于某些特殊情况下,重启计算机会使得系统重新识别外部配件从而恢复正常工作流程。 如果经过这些步骤仍然未能成功让Arduino IDE 认识到目标板的话,那么很遗憾地讲这块硬件可能存在缺陷或者损坏现象,建议联系供应商寻求进一步的帮助和支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值