Я использую класс TPCircularBuffer для создания объекта кольцевого буфера, из этого веб-сайта .
Это мой текущий код:
TPCircularBufferRecord bufferRecord; //1
TPCircularBufferInit(&bufferRecord, kBufferLength); //2
Строка 1 работает нормально, это означает, что компоновщик нашел файлы .cpp и .h для класса. Однако строка 2 не компилируется с ошибкой:
Undefined symbols:
"TPCircularBufferInit(TPCircularBufferRecord*, int)", referenced from:
StereoEffect3::StereoEffect3(ComponentInstanceRecord*)in StereoEffect3-1DB483EC8D75827.o
StereoEffect3::StereoEffect3(ComponentInstanceRecord*)in StereoEffect3-1DB483EC8D75827.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Не думаю, что это проблема исходного кода, но я все равно включу его здесь:
TPCircularBuffer.c
TPCircularBuffer.h
Кто-нибудь знает, почему компоновщик / компилятор не может найти функцию TPCircularBufferInit?
Функция TPCircularBufferInit имеет следующий вид:
inline void TPCircularBufferInit(TPCircularBufferRecord *record, int length) {
record->head = record->tail = record->fillCount = 0;
record->length = length;
}
Я почти уверен, что передаю правильный тип аргументов ...