C ++链接器错误LNK2019

时间:2012-03-15 03:38:03

标签: c++ visual-studio-2010 linker compiler-errors

当我使用Visual Studio 2010编译项目时,我遇到了有关LNK2019的问题。任何人都可以帮助我吗?感谢。

  

gspan.obj:错误LNK2019:无法解析的外部符号“public:class std :: vector,class std :: allocator>,class std :: allocator,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 ?$分配器@ d @ @@ 2 STD @@ V'$分配器@ V'$ basic_string的@ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ @@ 2 STD @@@ 2 @@性病@@ V?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ 3 @@ Z)在函式“private:void __thiscall gSpan :: read(class std :: basic_string ,类std :: allocator>)“(?读@ 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个无法解析的外部符号

2 个答案:

答案 0 :(得分:1)

LNK2019表示您的一个目标文件指的是未在其中任何一个中定义的符号(函数或变量名称)。通常它意味着您声明并调用了一个函数,但忘记实际实现该函数。

答案 1 :(得分: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;
}