このWebサイトから、循環バッファオブジェクトを作成するために「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
リンカ/コンパイラが関数 TPCircularBufferInit を見つけられない理由を知っている人はいますか? TPCircularBufferInit 関数は次のとおりです。
inline void TPCircularBufferInit(TPCircularBufferRecord *record, int length) {
record->head = record->tail = record->fillCount = 0;
record->length = length;
}
私はそれに正しいタイプの引数を渡していると確信しています...