fftw3 arm linux,静态链接fftw3到共享库

我正在研究Android的一些音高修正软件,我希望使用NDK让fftw3在Android上工作。

音调校正库(talentedhack,http://code.google.com/p/talentledhack/任何人都想知道)取决于fftw3,所以我试图将fftw3编译为静态库,然后将其链接到talentedhack共享图书馆。目前我已经将fftw3构建为静态库libfftw3.a,但我一直得到像这样的未解决的引用错误

bin/ndk/local/armeabi/objs/talentedhack/fft.o: In function `fft_inverse’:

jni/talentedhack/fft.c:51: undefined reference to `fftwf_execute’

使用ndk-build编译talentedhack共享库时。它似乎正在正确地拾取文件,这令人费解。

我的Android.mk文件的相关部分如下所示:

LOCAL_MODULE := talentedhack

LOCAL_CFLAGS := -std=c99

LOCAL_SRC_FILES := talentedhack.c other_source_files.c

LOCAL_C_INCLUDES := $(LOCAL_PATH)/fftw3/api

LOCAL_STATIC_LIBRARIES := fftw3

LOCAL_LDLIBS := -llog

include $(BUILD_SHARED_LIBRARY)

从项目顶层调用ndk-build时失败的命令是这样的:

/opt/android-ndk-linux/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/arm-eabi-gcc -nostdlib -Wl,-soname,libtalentedhack.so -Wl,-shared,-Bsymbolic /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/circular_buffer.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/fft.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/formant_corrector.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/lfo.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/pitch_detector.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/pitch_shifter.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/pitch_smoother.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/quantizer.o /path/to/project/ndk/local/armeabi/objs/talentedhack/talentedhack.o -Wl,–whole-archive -Wl,–no-whole-archive /path/to/project/bin/ndk/local/armeabi/libfftw3.a /opt/android-ndk-linux/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/libgcc.a /opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib/libc.so /opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib/libstdc++.so /opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib/libm.so -Wl,–no-undefined -Wl,-z,noexecstack -L/opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib -llog -Wl,-rpath-link=/opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib -o /path/to/project/bin/ndk/local/armeabi/libtalentedhack.so

我不确定这是否是fftw3的问题,因为我按照他们的移植指令(抓取源文件的子集,手动配置和构建它们),因为系统实际上没有fftwf_execute或任何一个由于使用了一些花哨的宏,或者如果Android NDK构建系统没有正确处理静态库的问题,任何标题中定义的其他函数(我可以告诉)。

任何帮助都将非常感激。

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24758 人正在系统学习中 相关资源:糖烟茶酒行业管理软件 烟酒进销存店铺销售收银管理系统

来源:南笙有酒

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月12日
下一篇 2021年4月12日

相关推荐