【问题标题】:Symbol referencing error [closed]符号引用错误[关闭]
【发布时间】:2012-10-29 22:35:30
【问题描述】:

我正在编写一个关于 alpha-beta 修剪的项目。当我在 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;
}

【问题讨论】:

    标签: c++ alpha-beta-pruning


    【解决方案1】:

    你有一个错字:

    int eval(Node ptr[])
    

    函数是怎么定义的,但是你调用

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

    稍后 - 请记住 C 和 C++ 区分大小写。

    【讨论】:

    • 正确..这是一个错字。非常感谢,伙计
    • @user1767718 没问题。请在可以接受的时候接受答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 2015-12-12
    相关资源
    最近更新 更多