微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将FFTW链接到Android NDK应用程序

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

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

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

最佳答案
您可以使用prebuit 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)

我编写了path_to_fftw_sources / $(LOCAL_MODULE).mk用于构建fftw静态库和path_to_your_project / $(LOCAL_MODULE).mk用于构建共享库.将LOCAL_SRC_FILES和LOCAL_C_INCLUDES放到单独的.mk文件中通常会更好.

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

原文地址:https://www.jb51.cc/android/430474.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐