我已经使用了以下代码几周了。但我已经遇到过这个错误,尽管我已经用谷歌搜索了大量相同的问题,但我仍然无法解决这个问题。如果有人可以提供帮助,我会非常感激:)
在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上的定义,因此它知道它在哪里定义。谢谢大家:))