私はkiss_fftライブラリで単純なFFTを実行しようとしていますが、リンケージエラーが発生し続け、誰かが状況を明らかにできることを望んでいました. これが私のコードです(kiss_fftの使用に関しては正しいことを願っています):
#include<stdlib.h>
#include<stdio.h>
#include "kiss_fft.h"
#define SIZE 1024
int main () {
double samples[SIZE];
int i;
for (i = 0; i < SIZE; i++) { // initialize samples to randomish values
samples[i] = (float)(rand() % 50) * .5;
}
kiss_fft_cfg cfg = kiss_fft_alloc(SIZE, 0, 0, 0);
kiss_fft_cpx fft_in[SIZE];
kiss_fft_cpx fft_out[SIZE];
for (i = 0; i < SIZE; i++) {
fft_in[i].r = samples[i];
fft_in[i].i = 0;
fft_out[i].r = 0;
fft_out[i].i = 0;
}
kiss_fft(cfg,fft_in,fft_out);
free(cfg);
}
そして、ここに私が得ているエラーがあります:
Undefined symbols for architecture x86_64:
"_kiss_fft", referenced from:
_main in FFT_standalone-712deb.o
"_kiss_fft_alloc", referenced from:
_main in FFT_standalone-712deb.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
kissFFT の readme ドキュメントによると、私が含める必要があるのは、kiss_fft ヘッダーだけであり、問題ないはずです。それ以外は、プログラム自体はまったく関与しておらず、何が問題なのかわかりません。C も私の好みの言語ではないので、何か非常に間違ったことをしている可能性があります。何か案は?