我的目标是编译kiss-fft库,以便在JNI中用于android开发。
不过,首先,我试图在我的linux机器上使用kiss-fft库。
使用Kiss fft.c或Kiss fft中的Kiss fftr.c时(Kissfft
)计算DFT。如何将它们的库编译成自己的文件。在源C文件的顶部,我包括kiss fft.h和include kiss fftr.h,也可以将kiss fft源代码放在我的项目根目录或linux中的/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-libs的内部函数。
任何帮助都将不胜感激。谢谢

最佳答案

你的makefile目标从来没有真正编译过kiss u fft.c
例如。

kiss_fft.o: kiss_fft.c _kiss_fft_guts.h
gcc $(ARGS) -c kiss_fftr.c -o kiss_fft

编译kiss u fftr.c而不是kiss u fft.c

关于android - 在Android中使用 native C Kiss_fft.c计算fft,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5744181/

10-11 21:12