[STM32F7] while (1) 处出现未定义引用 错误

[复制链接]
482|76
janewood 发表于 2026-6-7 22:08 | 显示全部楼层
undefined reference to 'XXX'从来不是“定义没写”,而是“定义了但没被链接进来”。
OliviaSH 发表于 2026-6-8 11:17 | 显示全部楼层
看样子是 SX1276 定义没在编译路径里,检查 include 和 source 文件路径对不对。
亚瑟 发表于 2026-6-9 12:29 | 显示全部楼层
定义在外部,要用extern声明。SX1276应该在定义它的.c文件中定义,而不是.h文件。检查radio.c或JS_SX12xx.c是否包含了SX1276的定义。
wwppd 发表于 2026-6-10 12:33 | 显示全部楼层
使用版本控制工具管理代码,避免文件误删或路径变动导致的链接问题。
claretttt 发表于 2026-6-10 14:01 | 显示全部楼层
编译器负责检查语法,如果变量没声明,它会报 undeclared identifier。
saservice 发表于 2026-6-10 14:22 | 显示全部楼层
SX1276定义在哪个文件?              
cashrwood 发表于 2026-6-10 14:42 | 显示全部楼层
必须使用 extern 关键字在头文件中声明它,告诉其他文件:“这个变量在别的文件里定义了,你去那里找”。
macpherson 发表于 2026-6-10 15:25 | 显示全部楼层
"undefined reference" 错误的核心是链接器找不到符号的实现
tifmill 发表于 2026-6-10 15:46 | 显示全部楼层
头文件中正确声明符号(使用 extern),且名称与实现一致。
elsaflower 发表于 2026-6-10 16:26 | 显示全部楼层
sx1276.c 没被加入编译!
Henryko 发表于 2026-6-11 14:52 | 显示全部楼层
这错误是因为 SX1276 在头文件里声明了,但没在对应的 .c 文件里定义。你试试在 radio.c 或 JS_SX12xx.c 文件里加上定义 SX1276 的代码。
星闪动力 发表于 2026-6-15 07:15 | 显示全部楼层
检查sx1276的寄存器配置是否与数据手册中的默认初始化值一致。
Bowclad 发表于 2026-6-17 17:17 | 显示全部楼层
在radio.c或JS_SX12xx.c里定义SX1276,确保这些文件被包含在工程中。
LinkMe 发表于 2026-6-18 08:55 | 显示全部楼层
检查sx1276的寄存器值是否与预期相符,确认配置参数正确设置。
班杰明 发表于 2026-6-18 22:38 | 显示全部楼层
你在外部声明了SX1276,但没在相应的.c文件中定义它,编译器当然找不到。直接在main函数里定义一下试试?
朝生 发表于 2026-6-20 17:22 | 显示全部楼层
检查`.c`文件在项目中的包含指令,确保被主文件或头文件正确引用。
物联万物互联 发表于 2026-6-24 08:04 | 显示全部楼层
链接器错误,提示找不到定义,可能是外部文件或库未正确链接。检查引用的库或文件是否正确配置。
未来AI 发表于 2026-6-25 07:05 | 显示全部楼层
这内容可能是指单片机编程时,在.c文件中定义特定型号的硬件寄存器,比如SX12XX或SX1276。
zephyr9 发表于 2026-6-28 13:17 | 显示全部楼层
在代码中右移操作必须指定位数,遗漏数字导致无法正确运算,导致编译错误。请检查并修正数字。
MessageRing 发表于 2026-7-1 15:56 | 显示全部楼层
检查JS_SX12xx.c文件,确认SX1276变量定义在.c文件里,而不是.h文件。如果定义在.h文件里,需要将其移到.c文件中。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0