有人可以帮我这个吗?我正在使用Visual Studio 2010 我收到了这条消息,我不知道如何解决这个问题。
1>生成代码......
1> dct.obj:错误LNK2019:未解析的外部符号“public: __thiscall Amostras :: Amostras(类std :: basic_string,类std :: allocator>)“ (?? 0Amostras @@ @ QAE V'$ basic_string的@ DU?$ char_traits @ d @ @@ STD V'$分配器@ 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中,然后在类* .cpp中包含* .h,它只包含该类的方法和函数。它奏效了!
答案 0 :(得分:1)
此链接器错误通常意味着您已对函数进行了原型设计,但忘记了定义它。确保您已实现该功能
Amostras::Amostras(string arg);
某处,当您链接代码时,包含该实现的目标文件已被链接。
希望这有帮助!
答案 1 :(得分:0)
你忘了定义Amostras::Amostras(string arg);
虽然在* .h文件中声明
Amostras::Amostras(string arg)
{
}
复制* .cpp文件中的上述代码
OR
您也可以通过评论* .h文件中的行来完成此操作。
//Amostras::Amostras(string arg);
哇!你有* .h文件吗?如果你只在* .cpp工作,那么就知道了。