2012-10-29 65 views
2

我正在編寫一個關於alpha-beta prunning的項目。當我在Xcode中運行它,我得到符號引用錯誤:符號引用錯誤

Undefined symbols for architecture x86_64: 
    "Eval(Node*)", referenced from: 
     AlphaBeta(int, int&, int, int, int, Node*) in main.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

我的一些代碼:

struct Node 
{ 
    char name[1]; 
    int empty;// YES or NO 
    double value; 
}; 

int eval(Node ptr[]) { 
//some stuff 
} 

int AlphaBeta (int player, int &bestMove, int alpha, int beta, int bsize, Node ptr[]) { 
//some stuff, and then i call Evaluation function 

int value = Eval(ptr); 
//some stuff 
} 
int main (int argc, const char * argv[]) 
{ 

    int size = 4; 
    Node board[size*size]; 
// some stuff 
    int score = AlphaBeta(RED, move, a, b, size, board); 
    return 0; 
} 

回答

3

你有一個錯字:

int eval(Node ptr[]) 

是函數是怎麼但您致電

Eval(ptr); 
^ 
+- this was a lowercase 'e' in the definition! 

la請記住,C和C++區分大小寫。

+0

對..這是一個錯字。非常感謝,夥計 – user23256

+0

@ user1767718沒問題。當你能夠這樣做時,請接受答案。 – 2012-10-29 22:40:23