很简单,我得到了这个错误:
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选项下编译程序。