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