我有一个第三方的图形项目,但是里面一旦用到诸如std::vector<int> s;
就报链接错误,如下:
Error 2 error LNK2019: unresolved external symbol __CrtDbgReportW referenced in function "void __cdecl std::_Debug_message(wchar_t const *,wchar_t const *,unsigned int)" (?_Debug_message@std@@YAXPB_W0I@Z) libcpmtd.lib
Error 4 error LNK2019: unresolved external symbol __free_dbg referenced in function "void __cdecl operator delete(void *,struct std::_DebugHeapTag_t const &,char *,int)" (??3@YAXPAXABU_DebugHeapTag_t@std@@PADH@Z) libcpmtd.libError 3 error LNK2019: unresolved external symbol __malloc_dbg referenced in function "void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z) libcpmtd.libError 5 fatal error LNK1120: 3 unresolved externals Debug\Dark GDK - PNG Detected.exe
哪位大神知道这是为什么吗?有什么解决的办法没有?

解决方案 »

  1.   

    出现这一报错,很有可能是定义了一个类,但没有实现之。 还有一种情况,本质也是上述原因造成的。 
    之前我通过添加现有项,引入了已粘贴在本工程目录下的 .h和 .cpp文件,但是关掉后再重新打开工程,编译的时候,就会报“error LNK2019: 无法解析的外部符”错误。 
    这个时候再去看工程的“类视图”,是可以看到该类的定义的,但是,双击其成员,只能看到 .h文件中的定义,未能看到 .cpp文件中的实现,而在“解决方案管理器”,是看不到该 .h和 .cpp文件的。 
      

  2.   

    LNK2019:头文件和lib版本不一致
    得看看工程用的是什么版本的c运行库
      

  3.   

    select the "Multi-threaded Debug Runtime Library [/MTd]" 
      

  4.   

    用using namespace std;///引进命名空间,有可能要加些相关头文件
      

  5.   

    搞定了,使用MDD就没问题了...