gpt4 book ai didi

android - 将 FFTW 链接到 Android NDK 应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:49:27 26 4
gpt4 key购买 nike

我目前正在编写一个流派分类应用程序作为我在计算机工程专业的最后一年项目。我最初用 C 编写了特征提取代码(实现 FFTW),现在我需要通过 NDK 在 Android 上实现它。

这是我的第一个 NDK 项目,所以我仍然掌握了一些东西,但我已经根据 this guide 为 Android 编译了 FFTW3 库。 .我没有执行最后一步,因为我认为它不适合我的需要。

我的问题是,在编译步骤之后,如何在调用它的主 NDK 应用程序中使用库?我是否在 Application.mk 中正常使用 LOCAL_STATIC_LIBRARIES 设置为我刚刚编译的 libfftw3.a?然后我不需要像往常一样拥有任何 -lfftw3 链接器标志?

最佳答案

您可以使用预构建的 FFTW 库(无论您是如何构建它的)。

或者您可以在 Android.mk makefile 中使用整个项目构建 FFTW。

Android.mk 内容为:

# Prebuilt FFTW library
include $(CLEAR_VARS)
LOCAL_MODULE := fftw
include $(PREBUILT_STATIC_LIBRARY)

# or

# Build FFTW library
include $(CLEAR_VARS)
LOCAL_MODULE := fftw
# TODO put your static libs build flags
include path_to_fftw_sources/$(LOCAL_MODULE).mk
include $(BUILD_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := YourProject
# TODO put your shared lib build flags
include path_to_your_project/$(LOCAL_MODULE).mk
LOCAL_STATIC_LIBRARIES += fftw
include $(BUILD_SHARED_LIBRARY)

我编写了用于构建 fftw 静态库的 path_to_fftw_sources/$(LOCAL_MODULE).mk 和用于构建共享库的 path_to_your_project/$(LOCAL_MODULE).mk。通常最好将 LOCAL_SRC_FILESLOCAL_C_INCLUDES 放入单独的 .mk 文件中。

您可以在 NDK 发行版的 docs/ANDROID-MK.html 文档中阅读有关 Android.mk 文件的更多信息。

关于android - 将 FFTW 链接到 Android NDK 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7234629/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com