2

私はアルファベータ剪定に関するプロジェクトを書いています。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;
}
4

1 に答える 1

3

タイプミスがあります:

int eval(Node ptr[])

関数の定義方法ですが、呼び出します

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

後で - C と C++ では大文字と小文字が区別されることに注意してください。

于 2012-10-29T22:37:31.637 に答える