我的游戏中有一个更新函数,其中包含以下代码:
void DrawMiniFPSCounter();
DrawMiniFPSCounter();
该DrawMiniFPSCounter()
函数在名为 miniFPSCounter.cpp 的文件中声明,该文件是构建目标的一部分(我使用的是 Xcode)。构建时,我收到一个链接器错误,提示DrawMiniFPSCounter
找不到该符号。我已尝试删除上面的声明并仅调用DrawMiniFPSCounter()
,但这会导致编译期间出现“未找到符号”错误。为什么链接器很难找到这个符号?这与项目中解析符号的顺序有关吗?
编辑:我nm hrMiniFPSCounter.o | grep Draw
在构建目录中运行命令,并得到以下输出:
00000000 T __Z15DrawMiniCounteriiiii
0002d040 S __Z15DrawMiniCounteriiiii.eh
00000a00 T __Z18DrawMiniFPSCounterv
0002d148 S __Z18DrawMiniFPSCounterv.eh
00000560 t __ZL9DrawDigitiiib
0002d128 s __ZL9DrawDigitiiib.eh
这是正常的吗?为什么函数名称末尾有多余的字符?