LNK2019:未解析的外部符号,但我已对函数进行了编码
Posted
技术标签:
【中文标题】LNK2019:未解析的外部符号,但我已对函数进行了编码【英文标题】:LNK2019: unresolved external symbol but I have coded the function 【发布时间】:2012-04-13 18:33:44 【问题描述】:有人可以帮我解决这个问题吗?我正在使用 Visual Studio 2010 我收到了这条消息,但我不知道如何解决这个问题。
1> 生成代码...
1>dct.obj:错误 LNK2019:未解析的外部符号“公共: __thiscall Amostras::Amostras(class std::basic_string,class std::allocator >)" (??0Amostras@@QAE@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 在函数_main中引用
1>C:\Users\redneck\documents\visual studio 2010\Projects\dct\Debug\dct.exe:致命错误 LNK1120:1 未解决 外在
这里是一些 *.cpp 文件:
class Amostras
public:
int original[10][257];
int idct[10][257];
float dct[10][257];
int grupos;
Amostras::Amostras(void)
for (int i=0;i<10;i++)
this->original[i][0]=0;
this->dct[i][0]=0.0;
this->idct[i][0]=0;
this->grupos=0;
Amostras::Amostras(string arquivo)
int n_samples=0,linha=0,coluna=0;
int cont;
..
这里是 *.h
class Amostras
public:
int original[10][257];
int idct[10][257];
float dct[10][257];
int grupos;
Amostras::Amostras();
Amostras::Amostras(string arquivo);
void Amostras::mostra(void);
;
主要
int main(void)
Amostras *amostra = new Amostras("in.txt");
dct(amostra,0);
show(amostra,0);
amostra->mostra();
return 0;
希望它有帮助,我这里的选项用完了:(
解决方案:
所以我所做的只是将类放在 *.h 中,然后将 *.h 包含在仅具有该类的方法和功能的类 *.cpp 中。成功了!
【问题讨论】:
查看 templatetypedef 的答案,但如果您想要更具体的答案,请发布您的代码。同时,您可以阅读本文以获取有关 LNK2019 的更多信息:msdn.microsoft.com/en-us/library/799kze2z(v=vs.80).aspx 【参考方案1】:此链接器错误通常意味着您已经制作了函数原型但忘记定义它。确保你已经实现了该功能
Amostras::Amostras(string arg);
某处,当您链接包含该实现的目标文件的代码时。
希望这会有所帮助!
【讨论】:
它是 Amostras 类的构造函数。它没有帮助。【参考方案2】:你忘了定义Amostras::Amostras(string arg);
虽然在你的 *.h 文件中声明了
Amostras::Amostras(string arg)
将上述代码复制到您的 *.cpp 文件中
或
您也可以通过注释 *.h 文件中的行来做到这一点。
//Amostras::Amostras(string arg);
哇!你有 *.h 文件吗?如果你只在 *.cpp 中工作,那么请让我知道。
【讨论】:
我有一个 *.h 文件,其中包含我的 *.cpp 文件中的所有原型。 好的,它有效吗?如果您不使用它,请尝试创建一个内联构造函数。 它没有用,我在 *.cpp 中定义了我的所有类,所有构造函数 (2)、变量和一个函数。在我的 *.h 中,我还有构造函数、变量和函数的原型。我在我的另一个文件中包含 *.h。以上是关于LNK2019:未解析的外部符号,但我已对函数进行了编码的主要内容,如果未能解决你的问题,请参考以下文章
链接 OpenCV 失败,LNK 2019 未解析的外部符号
LNK2019:未解析的外部符号 _main 在函数 ___tmainCRTStartup 中引用
C++:错误 LNK2019:函数 _main 中引用的未解析的外部符号