C++链接器错误LNK2019

C++ Linker error LNK2019

本文关键字:LNK2019 错误 链接 C++      更新时间:2023-10-16

在使用Visual Studio 2010编译项目时,我遇到了一个关于LNK2019的问题。有人能帮我吗?谢谢

gspan.obj:错误LNK2019:無法解析的外部符號"public:class std::vector,class std::allocater>,class std::allocater,class std::allocator>>__thiscall gSpan::tokenize(class std::basic_string,class std:::allocator>)"(?tokenize@gSpan@@QAE?AV$vector@V$basic_string@DU$char_traits@D@std@@V$allocator@D@2@@std@@V$allocator@V$basic_string@DU$char_traits@D@std@@V$allocator@D@2@@std@@@2@@std@@V$basic_string@DU$char_traits@D@std@@V$allocator@D@2@@3@@Z)在函式"private:void __thiscall gSpan::read(class std::basic_string,class std:::allocater>)"(?read@gSpan@@AAEXV$basic_string@DU$char_traits@D@std@@V$allocator@D@2@@std@@@Z)中被參考

C: \Users\cool\documents\visual studio 2010\Projects\OGSPAN\Debug\OGSPAN.exe:致命错误LNK1120:1個無法解析的外部符號

请检查源代码,方法gSpan::tokenize未实现。它在gSpan::read中被调用。顺便说一下,gSpan::is_min也没有实现。

您可以使用dumpbin.exe来检查生成的gspan.obj。所有其他gSpan::方法都在SECT??(我认为??是两个十六进制数字)部分中定义,而gSpan::tokenizegSpan::is_minUNDEF

要重新创建错误,请使用以下代码:

class a {
public:
    void func1(void);
    void func2(void);
};
void a::func1(void)
{
    func2();
}
int _tmain(int argc, _TCHAR* argv[])
{
    a b;
    b.func1();
    return 0;
}

LNK2019表示您的一个对象文件引用了其中任何一个文件中都没有定义的符号(函数或变量名)。这通常意味着您声明并调用了一个函数,但忘记了实际实现该函数。