2012-04-13 63 views
2

有人可以幫助我嗎?我正在使用Visual Studio 2010 我收到此消息,但我不知道如何解決此問題。LNK2019:無法解析的外部符號,但我已編碼的功能

1>生成代碼...

1> dct.obj:錯誤LNK2019:無法解析的外部符號「公用: __thiscall Amostras :: Amostras(類的std :: basic_string的,一流的std ::分配器>)「 (?? 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,只有具有這個類的方法和功能。有效!

+0

請參閱templatetypedef的答案,但如果您想要更具體的答案,然後發佈您的代碼。在此期間,您可以閱讀以下關於LNK2019的更多信息:http://msdn.microsoft.com/en-us/library/799kze2z(v=vs.80).aspx – JBentley 2012-04-13 18:38:02

回答

1

此鏈接器錯誤通常意味着您已經創建了一個函數的原型,但忘記定義它。請確保您已實現的功能

Amostras::Amostras(string arg); 

的地方,而當你鏈接您的代碼包含執行在鏈接的目標文件。

希望這有助於!

+0

它是Amostras類的構造函數。並沒有幫助。 – 2012-04-13 18:39:18

0

你忘了定義Amostras::Amostras(string arg); 雖然在* .h文件中聲明

Amostras::Amostras(string arg) 
{ 
} 

複製上面的代碼在你的* .cpp文件

OR

你也可以做到這一點通過評論你的* .h文件中的行。

//Amostras::Amostras(string arg); 

哇!你有* .h文件嗎?如果你只在* .cpp中工作,那麼請讓我知道。

+0

我有* .h文件,包含我的* .cpp文件中的所有原型。 – 2012-04-13 18:48:49

+0

好的,它有效嗎?如果您不使用它,請嘗試製作內聯構造函數。 – 2012-04-13 18:51:52

+0

它沒有工作,我有所有我的類在* .cpp中定義,與所有構造函數(2),變量和只有一個函數。在我的* .h中,我有構造函數,變量和函數的原型。我在其他文件中包含* .h。 – 2012-04-13 18:58:15

相關問題