Очень просто, я получаю эту ошибку:неопределенные символы ошибки 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;
}
старый кусок является 4х2 массив целых чисел.
На данный момент все, что нужно сделать этой функции, это скопировать oldpiece
в newpiece
, а затем return newpiece;
. Я понятия не имею, что означает эта ошибка.
Если у вас возникли ошибки компоновщика, всегда лучше увидеть всю вещь, указав -v (как предложено в сообщении об ошибке) для подробного вывода. –
Это определение внутри класса/пространства имен Tetris? Если нет, вам нужно квалифицировать имя «Tetris :: rotate», иначе вы объявляете новую, несвязанную функцию. –
на данный момент я включаю '', '' и '" tetris.h'. Есть ли что-то еще, что я должен включать? –