statické propojení fftw3 do sdílené knihovny

hlasů
1

Já pracuji na nějaké korekce stoupání software pro Android, a dívám se dostat fftw3 pracuje na Android pomocí NDK.

Rozteč korekce knihovna (talentedhack, http://code.google.com/p/talentledhack/ zapouzdřit někdo chce vědět) závisí na fftw3, takže se snažím sestavit fftw3 jako statické knihovny, pak jej propojit do talentedhack sdíleného knihovna. V současné době mám fftw3 stavbu jako statické knihovny, libfftw3.a, ale pořád stále nevyřešené vztahové chyby, jako je tento

bin/ndk/local/armeabi/objs/talentedhack/fft.o: In function `fft_inverse':
jni/talentedhack/fft.c:51: undefined reference to `fftwf_execute'

Při sestavování talentedhack sdílenou knihovnu pomocí NDK-build. Zdá se, že se zvedne soubor správně i když, což je matoucí.

Příslušné části mého souboru Android.mk vypadá takto:

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)

Příkaz, který selže při NDK-build volán z projektu nejvyšší úrovni, je tento:

/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

Nejsem si jistý, zda se jedná o problém s fftw3, protože jsem sledoval jejich pokyny na portování (chytit podmnožinu zdrojových souborů, nakonfigurovat ručně, a stavět je), protože systém ve skutečnosti nemá fftwf_execute nebo na kteroukoli ostatní funkce jsou definovány v každém záhlaví (které mohu říci) v důsledku používání některých fantazie makra, nebo zda se jedná o problém s Android NDK vybudovat systém nezabývá se statickými knihovnami správně. Jakákoliv pomoc vůbec by bylo velmi ocenil.

Položena 11/08/2010 v 00:06
zdroj uživatelem
V jiných jazycích...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more