在调用函数之前声明函数时出现链接器错误
Linker error when declaring a function just before calling it
我的游戏中有一个包含以下代码的更新函数:
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
这正常吗?为什么函数名称末尾有额外的字符?
根据我的经验,最常见的"错误":
- 文件(真的)编译了吗?
- 它(真的)链接正确吗?
- 您是否为函数起了您认为的名称?
- 新命名空间问题:)
您确定 miniFPSCounter.cpp 文件已编译(/已以正确的方式包含在项目中)?我想您正在经历的事情可能是由一些不同的事情引起的,但是在缺乏更多信息的情况下,我会说:尝试确保cpp文件正在编译(可能会引入一些语法错误,如果确实编译了,则会导致编译错误),并且当您确定这一点时, 您可以开始检查其他内容(例如它是否正确链接等)
编辑:将清单放在顶部。
相关文章:
- 内联函数中具有内部链接的全局变量
- 使用C链接在函数内部创建C++模板
- 返回一个带有 std::move 的对象并链接函数
- 无法使函数公开。获取:"LNK2005"错误。如何调试链接器错误
- 链接器错误:无法解析构造函数
- 使用自定义工具集获取动态退出析构函数链接错误 - eh 矢量析构函数
- C++复制构造函数链接堆栈
- C 将外部函数链接为成员函数
- 将静态类与友元函数链接时出现奇怪错误
- 关于C++中构造函数链接的一些问题
- 构造函数/析构函数链接错误
- 查找导致库函数链接的函数
- C++虚拟覆盖函数链接器错误
- 将错误与定义的析构函数链接
- 模板函数链接器错误LNK2019
- 使用模板的构造函数链接器错误
- Qt移动构造函数链接错误
- 内联函数链接错误C++
- c++ OpenGL——gluBuild2DMipmaps函数链接错误
- 静态空函数链接错误