编译时,架构x86_64的未定义符号出错

时间:2015-02-20 18:21:44

标签: c++ compiler-errors

很简单,我收到了这个错误:

Undefined symbols for architecture x86_64:
  "Tetris::rotate(int (*) [2], int)", referenced from:
      Tetris::add_piece(char, int, int) in tetris-8a8072.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

这是我的旋转功能:

int** rotate(int oldpiece[][2],int rot){
    int **newpiece= new int*[4];
    for (unsigned int i=0; i<4; ++i){
        newpiece[i] = new int[2];
    }
    for (unsigned int i=0; i<4; ++i){
        for (unsigned int j=0; j<2; ++j){
            newpiece[i][j]=oldpiece[i][j];
        }
    }
    return newpiece;
}

旧件是一个4x2的整数数组。

截至目前,所有此功能应该将oldpiece复制到newpiece,然后复制到return newpiece;。我不知道这个错误意味着什么。

1 个答案:

答案 0 :(得分:0)

你有外部图书馆吗?如果是这样,你必须链接它。 另外,尝试在release选项下编译程序而不是debug选项。