编译时出现体系结构x86_64错误的未定义符号



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

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的int数组。

到目前为止,该函数所要做的就是将oldpiece复制到newpiece,然后复制到return newpiece;。我不知道这个错误是什么意思。

您有外部库吗?如果是,则必须将其链接。另外,请尝试在release选项而不是debug选项下编译程序。

最新更新