C ++链接错误缺少GetTickCount以及如何调试

时间:2011-08-15 17:54:05

标签: c++ debugging linker

我一直在重构一些包含的头文件,而且突然间我留下了这个(更改了一些名称空间和类名)链接错误:

Error 1 error LNK2001: unresolved external symbol "public: class ABC::DEF::JKL __thiscall ABC::GHI::GetTickCount(void)const " (?GetTickCount@GHI@ABC@@QBE?AVJKL@DEF@2@XZ) Server.obj

问题是,我的代码中没有对GetTickCount的引用。我做了一些干净的重建,但没有用。

调试此操作的下一步是什么?有没有机会找到违规行?从上面的消息看起来好像违规项目在服务器编译单元中,是否可以进一步缩小范围?为什么我甚至会得到一个我从未引用的未解析的外部符号?

由于

3 个答案:

答案 0 :(得分:3)

没关系,winbase.h非常好

#define GetCurrentTime() GetTickCount()

答案 1 :(得分:0)

看起来这是您的代码的发布版本。在调试模式下重建它,链接器应该告诉你Server.obj中未解析外部的确切行号。

答案 2 :(得分:0)

我假设您在Windows上构建GetTickCount() is a function provided from Kernel32 library

您需要将Kernel32.lib添加到链接器库行中。我通常从QMake用以下行做到这一点:

LIBS *= Kernel32.lib