2012-03-15 98 views
1

我遇到一个关于LNK2019问题,当我编译我的项目与Visual Studio 2010。谁能帮助我?谢谢。C++链接错误LNK2019

gspan.obj:错误LNK2019:无法解析的外部符号“公共:类的std ::向量,类的std ::分配器>,类的std ::分配器,类的std ::分配器>>> __thiscall gSpan ::记号化(类的std :: basic_string的,类的std ::分配器>)”(?记号化@ @@ gSpan QAE?AV?$ @矢量V'$ basic_string的@ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ 2 @@性病@@ V'$ @分配器V'$ @的basic_string杜?$ @ char_traits @ d @@性病V'$ @分配器@ d @@ 2 STD @@@ 2 @@ STD @@ ?V $ @的basic_string杜$ @ char_traits @ d @@性病V $ @分配器@ d @@ 2 3 @@ Z)在函式“私人:?无效__thiscall gSpan ::阅读(类的std :: basic_string的,类的std ::分配器>)”(?读@ @@ gSpan AAEXV?$ basic_string的@ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ @@ 2 STD @@@ Z)中被参考

C:\ Users \ cool \ documents \ visual stu DIO 2010 \项目\ OGSPAN \调试\ OGSPAN.exe:致命错误LNK1120: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; 
} 
+0

我忘记在我的代码中实现标记化...,谢谢你的帮助!最好 :) – LoveTW 2012-03-15 10:36:45

1

LNK2019意味着你的目标文件中的一个被参考的符号(函数或变量名),该没有在其中任何一个中定义。通常这意味着你声明并调用了一个函数,但忘记了实际执行该函数。

+0

如果我正确读取错误,它看起来像它的唯一缺少的空白gSpan的定义::阅读(的std :: string)。 – twsaef 2012-03-15 04:01:29

+0

感谢您的帮助!你让我知道'LNK2019'的含义!最好:) – LoveTW 2012-03-15 10:37:38