2013-01-19 15 views
0

Possible Duplicate:
What is an undefined reference/unresolved external symbol error and how do I fix it?C++編譯器問題(?):不能將參數傳遞給函數在不同的類文件

最近,我開始在C++的解釋工作,但我得到惱火,向量或數組不能傳遞給外部無論我嘗試什麼,都會使用類方法,所以我刪除了我曾經工作過的所有東西。事實證明,我甚至不能將int傳遞給另一個類。在決定使用C或Java之前,我決定再給C++一次機會,但編譯器仍然不能像我期望的那樣工作。也許我忘記了一些關於C++的簡單內容,因爲我有一段時間沒有用過它,但這看起來很簡單。我的問題是:當它們沒有在同一個文件中定義時,我無法將參數傳遞給其他類中的方法。這裏就是我想要做的事:

主營:main.cpp中

#include "myclass.h" 

int main() { 
    MyClass test; 
    int n = test.add(25, 30); 
    return n; 
} 

標題:myclass.h

class MyClass { 
public: 
    int add(int a, int b); 
}; 

類實現:myclass.cpp

#include "myclass.h" 

int MyClass::add(int a, int b) { 
    return a + b; 
} 

g++ main.cpp產量

/tmp/ccAZr6EY.o: In function main': main.cpp:(.text+0x1a): undefined reference to MyClass::add(int, int)' collect2: error: ld returned 1 exit status

到底什麼是我做錯了編譯呢?另外,即使我的函數沒有被參數化,編譯器也會在同一件事情上大吼大叫,所以它一定是頭文件的問題。

任何幫助非常感謝 - 謝謝!

+3

您必須鏈接實施。 http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-symbol-error-and-how-doi-i-fix – chris

+0

我相信這個問題必須是重複的。 –

+0

隨意刪除它 - 不希望stackoverflow服務器崩潰導致我的60kb的數據...但是,謝謝克里斯 - 我想這樣做,但我不記得必須。 – ICoffeeConsumer

回答

2

您需要編譯這兩個文件

g++ main.cpp myclass.cpp 

如果只編譯main.cpp中,編譯器發現的​​聲明在你的頭,但鏈接後未能找到​​實現跳轉到。

+0

這很有道理!謝謝。難以置信,我認爲它會神奇地發現實施......我必須在爪哇島上。 – ICoffeeConsumer

相關問題