我的目标是编译 Kiss_fft 库以在 JNI 中用于 android 开发。然而,首先,我试图在我的 linux 机器上用 C 语言使用 Kiss_fft 库。
当使用 Kiss_fft ( Kissfft ) 中的 Kiss_fft.c 或 Kiss_fftr.c 计算 DFT 时。您究竟如何将他们的库编译到您自己的文件中。在我的源 C 文件的顶部,我#include Kiss_fft.h 和#include Kiss_fftr.h,并将 Kiss_fft 源代码放在我的项目根目录或 /usr/include/ 中,然后我编译makefile 类似于这个:
#Makefile
#ARGS = -g -ansi -pedantic -Wall -Werror -O1
ARGS = -g -lsndfile -O1 -lm
FILES = spec_subv4.o kiss_fftr.o kiss_fft.o
spec_sub: $(FILES)
gcc $(ARGS) $(FILES) -o spec_sub
spec_subv4.o: spec_subv4.c
gcc -lsndfile $(ARGS) -c spec_subv4.c -o spec_subv4
kiss_fftr.o: kiss_fftr.c kiss_fftr.h kiss_fftr.h _kiss_fft_guts.h
gcc $(ARGS) -c kiss_fftr.c -o kiss_fftr
kiss_fft.o: kiss_fft.c _kiss_fft_guts.h
gcc $(ARGS) -c kiss_fftr.c -o kiss_fft
查看所有的kiss_fft 源文件,我编写了这个make 文件来构建所有依赖项。但是我仍然得到
undefined reference to kiss_fft
undefined reference to kiss_fft_alloc
哪些是 Kiss_fft 库的内部函数。
任何帮助,将不胜感激。谢谢