将FFTW链接到Android NDK应用程序中

5
我目前正在撰写一份计算机工程学的毕业项目,这是一个关于流派分类应用程序。我最初使用C编写了特征提取代码(实现FFTW),现在我需要通过NDK在Android上实现它。
这是我的第一个NDK项目,所以我还在适应中,但是我已经按照这个指南为Android编译了FFTW3库。我没有执行最后一步,因为我认为这对我所需的不正确。
我的问题是,在编译步骤之后,如何在调用它的主要NDK应用程序中使用库?我是否需要像通常那样在Application.mk中设置LOCAL_STATIC_LIBRARIES为刚刚编译的libfftw3.a,并且我不需要任何-lfftw3链接器标志,对吗?
1个回答

4
你可以使用预先构建的 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 文件的更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接