“错误LNK2001:未解析的外部符号”无法找到解决方案

时间:2014-06-12 11:20:34

标签: c++ c++11

我已经使用了以下代码几周了。但我已经遇到过这个错误,尽管我已经用谷歌搜索了大量相同的问题,但我仍然无法解决这个问题。如果有人可以提供帮助,我会非常感激:)

在TVideoIOYuv.cpp上,在 writePlane()函数中,我调用 goToCorrectError()函数:

Bool writePlane(ostream& fd, Pel* src, Bool is16bit,
                   UInt stride,
                   UInt width, UInt height, bool temErro, bool chroma, TComPic*& pPic,
                   TComList<TComPic*>::iterator itPic, TComList<TComPic*>* pcListPic) 
{ 
   (...)
   goToCorrectError(itPic, pcListPic);
   (..)
}

在TVideoIOYuv.h中,我已将goToCorrectError声明为

extern void goToCorrectError(TComList<TComPic*>::iterator itPic, TComList<TComPic*>* pcListPic);

因为该函数在TAppDecTop.cpp中定义为:

void goToCorrectError(TComList<TComPic*>::iterator itPic, TComList<TComPic*>* pcListPic)
{
TAppDecTop aux;
TComPic* dPic = getDamagedPic();
aux.CorrectsError(itPic, dPic, pcListPic);
}

并在TAppDecTop.h中声明为:

(...)
#include "TLibVideoIO/TVideoIOYuv.h"
(...)
void goToCorrectError(TComList<TComPic*>::iterator itPic, TComList<TComPic*>* pcListPic);

当我尝试编译时,我得到&#34;错误LNK2001:未解析的外部符号&#34; void __cdecl goToCorrectError(class std :: _ List_iterator&gt;&gt;,class TComList *)&#34; (?goToCorrectError @@ YAXV?$ _ List_iterator @ V'$ _ List_val @ U&$ _ List_simple_types @ PEAVTComPic @@@性病性病@@@ @@@性病@@ PEAV?$ @ TComList PEAVTComPic @@@@@ Z)&# 34;错误。

有趣的是,当我点击&#34;转到定义&#34;在TVideoIOYuv.cpp上的goToCorrectError,它转到TAppDecTop.cpp上的定义,因此它知道它在哪里定义。谢谢大家:))

0 个答案:

没有答案