TI ARM CLANG 不会解析符号,即使 objdump 显示它在那里
TI ARM CLANG wont resolve symbol even though objdump shows its there
我正在尝试使用 TI ARM CLANG 编译器在 CCS(Code composer studio)上编译我的代码。
我正在尝试实现使用 TI 的 enet SDK 的以太网功能
我在 enet SDK 中的 main 中调用了一个函数,但编译器抛出错误
unresolved symbol Enet_initOsalCfg(EnetOsal_Cfg_s, first referenced in *)
我已经在链接器选项卡中添加了它的库
为了确认我没有做一些愚蠢的事情,我使用相同的编译器 objdump 来反汇编库,我想如果我没记错的话,转储清楚地显示了该符号。
我在 main() 中调用的函数有声明:
void Enet_initOsalCfg(EnetOsal_Cfg *osalCfg);
以下是 objdump 中的一个片段,与我的函数同名:
Disassembly of section .text.Enet_initOsalCfg:
00000000 <Enet_initOsalCfg>:
0: 00 48 2d e9 push {r11, lr}
4: 08 d0 4d e2 sub sp, sp, #8
8: 04 00 8d e5 str r0, [sp, #4]
c: 04 00 9d e5 ldr r0, [sp, #4]
10: fe ff ff eb bl #-8 <Enet_initOsalCfg+0x10>
14: 08 d0 8d e2 add sp, sp, #8
18: 00 88 bd e8 pop {r11, pc}
Disassembly of section .rel.text.Enet_initOsalCfg:
00000000 <.rel.text.Enet_initOsalCfg>:
0: 10 00 00 00 andeq r0, r0, r0, lsl r0
4: 1c 9c 00 00 andeq r9, r0, r12, lsl r12
Disassembly of section .ARM.exidx.text.Enet_initOsalCfg:
00000000 <.ARM.exidx.text.Enet_initOsalCfg>:
0: 00 00 00 00 andeq r0, r0, r0
4: 01 00 00 00 andeq r0, r0, r1
Disassembly of section .rel.ARM.exidx.text.Enet_initOsalCfg:
00000000 <.rel.ARM.exidx.text.Enet_initOsalCfg>:
0: 00 00 00 00 andeq r0, r0, r0
4: 2a 72 00 00 andeq r7, r0, r10, lsr #4
我在这里错过了什么?
对不起,我说的太蠢了
糟糕,我们评论中的朋友发现了我的问题。我忘记了 extern "C" 对不起,我很愚蠢,自从 4 小时以来我一直在挠头,我的道歉:P
我正在尝试使用 TI ARM CLANG 编译器在 CCS(Code composer studio)上编译我的代码。
我正在尝试实现使用 TI 的 enet SDK 的以太网功能
我在 enet SDK 中的 main 中调用了一个函数,但编译器抛出错误
unresolved symbol Enet_initOsalCfg(EnetOsal_Cfg_s, first referenced in *)
我已经在链接器选项卡中添加了它的库
为了确认我没有做一些愚蠢的事情,我使用相同的编译器 objdump 来反汇编库,我想如果我没记错的话,转储清楚地显示了该符号。
我在 main() 中调用的函数有声明:
void Enet_initOsalCfg(EnetOsal_Cfg *osalCfg);
以下是 objdump 中的一个片段,与我的函数同名:
Disassembly of section .text.Enet_initOsalCfg:
00000000 <Enet_initOsalCfg>:
0: 00 48 2d e9 push {r11, lr}
4: 08 d0 4d e2 sub sp, sp, #8
8: 04 00 8d e5 str r0, [sp, #4]
c: 04 00 9d e5 ldr r0, [sp, #4]
10: fe ff ff eb bl #-8 <Enet_initOsalCfg+0x10>
14: 08 d0 8d e2 add sp, sp, #8
18: 00 88 bd e8 pop {r11, pc}
Disassembly of section .rel.text.Enet_initOsalCfg:
00000000 <.rel.text.Enet_initOsalCfg>:
0: 10 00 00 00 andeq r0, r0, r0, lsl r0
4: 1c 9c 00 00 andeq r9, r0, r12, lsl r12
Disassembly of section .ARM.exidx.text.Enet_initOsalCfg:
00000000 <.ARM.exidx.text.Enet_initOsalCfg>:
0: 00 00 00 00 andeq r0, r0, r0
4: 01 00 00 00 andeq r0, r0, r1
Disassembly of section .rel.ARM.exidx.text.Enet_initOsalCfg:
00000000 <.rel.ARM.exidx.text.Enet_initOsalCfg>:
0: 00 00 00 00 andeq r0, r0, r0
4: 2a 72 00 00 andeq r7, r0, r10, lsr #4
我在这里错过了什么?
对不起,我说的太蠢了
糟糕,我们评论中的朋友发现了我的问题。我忘记了 extern "C" 对不起,我很愚蠢,自从 4 小时以来我一直在挠头,我的道歉:P