当我需要导出几个本机库时,如何配置android.mk
现在我导出一个本机库,我的文件夹如下: JNI\ANN*.cpp android.mk文件如下所示:当我需要导出几个本机库时,如何配置android.mk,android,c++,android-ndk,Android,C++,Android Ndk,现在我导出一个本机库,我的文件夹如下: JNI\ANN*.cpp android.mk文件如下所示: LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_C_INCLUDES := $(LOCAL_PATH)/../ LOCAL_MODULE := libann LOCAL_LDLIBS := -llog NDK_TOOLCHAIN_VERSION := clang LOCAL_CPPFLAGS += -std=c+
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../
LOCAL_MODULE := libann
LOCAL_LDLIBS := -llog
NDK_TOOLCHAIN_VERSION := clang
LOCAL_CPPFLAGS += -std=c++11
LOCAL_SRC_FILES := \
ANN.cpp \
bd_pr_search.cpp \
bd_tree.cpp \
kd_pr_search.cpp \
kd_split.cpp \
kd_util.cpp \
bd_fix_rad_search.cpp \
bd_search.cpp \
brute.cpp \
kd_fix_rad_search.cpp \
kd_search.cpp \
kd_tree.cpp \
kd_dump.cpp \
perf.cpp\
sample.cpp
include $(BUILD_SHARED_LIBRARY)
现在我想添加一些其他cpp文件并导出另一个本机库。
例如,我添加了两个文件:graph.h、dijkstra、cpp
我应该如何配置android.mk文件?为什么需要构建几个库?你不能把所有本机代码塞进一个库吗?不同的库代表不同的逻辑和不同的东西。所以我想把它们分成不同的部分。这种可能性存在吗?@SevaAlekseyev是对的;您应该有很好的理由希望在项目中生成多个本机库。另外,请在提问之前,先说明你尝试过的内容,以及为什么这种尝试失败。在C++中,还有其他方法来分离逻辑类、命名空间、文件。将代码拆分为库不是一种好方法。存在一种可能性,但这不是一个好主意。我必须选择将代码放入一个库中。但是,您能否提供一些示例或提示,以便将代码导出到多个库中?
project/
liba/
srca.cpp
libb/
srcb.cpp
# TOP_PATH refers to the project root dir (project)
TOP_PATH := $(call my-dir)/.
# Build library a
include $(CLEAR_VARS)
LOCAL_PATH := $(TOP_PATH)/liba
LOCAL_MODULE := liba
LOCAL_C_INCLUDES := $(LOCAL_PATH)
LOCAL_SRC_FILES := srca.cpp
include $(BUILD_SHARED_LIBRARY)
# Build library b
include $(CLEAR_VARS)
LOCAL_PATH := $(TOP_PATH)/libb
LOCAL_MODULE := libb
LOCAL_C_INCLUDES := $(LOCAL_PATH)
LOCAL_SRC_FILES := srcb.cpp
include $(BUILD_SHARED_LIBRARY)