1

Eclipse NDK,NativeActivity 项目。我正在尝试将一个liquidfun(Box2D) 库添加到我现有的项目中。不幸的是,互联网上没有人解释如何精确地做到这一点。在使用 ndk 构建库后我被卡住了(按照这个https://google.github.io/liquidfun/Building/html/md__building_android.html),并运行示例项目。我完全不知道如何在我自己的项目中使用它。我的Android.mk,我已经在使用 sfml。

  LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := sfml-example


PROJECT_FILES := $(wildcard $(LOCAL_PATH)/CPP/*.cpp)
PROJECT_FILES := $(PROJECT_FILES:$(LOCAL_PATH)/%=%)

LOCAL_SRC_FILES := main.cpp 

LOCAL_SRC_FILES += $(PROJECT_FILES)

FILE_LIST := $(wildcard $(LOCAL_PATH)*.cpp)

LOCAL_SHARED_LIBRARIES := sfml-system
LOCAL_SHARED_LIBRARIES += sfml-window
LOCAL_SHARED_LIBRARIES += sfml-graphics
LOCAL_SHARED_LIBRARIES += sfml-audio
LOCAL_SHARED_LIBRARIES += sfml-network
LOCAL_WHOLE_STATIC_LIBRARIES := sfml-main

include $(BUILD_SHARED_LIBRARY)

$(call import-module,sfml)

提前致谢。

4

1 回答 1

0

我在自己的项目中有一些预构建库,我将它们包括在内:

include $(CLEAR_VARS)
LOCAL_MODULE    := libcurl
LOCAL_SRC_FILES := lib/$(TARGET_ARCH_ABI)/libcurl.a
LOCAL_STATIC_LIBRARIES := libcares libssl
LOCAL_EXPORT_LDLIBS := -lz
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/curl/include
include $(PREBUILT_STATIC_LIBRARY)

这是用于预构建的静态库(带有 .a 扩展名)。如果您想包括共享,只需将其更改为BUILD_SHARED_LIBRARY. 要包含的这个文件在MyProject/jni/lib/{arch}文件夹内(与其他库一起),库的头文件放在里面MyProject/jni/curl/include(就像它在LOCAL_EXPORT_C_INCLUDES变量中可见一样)

您传递给的名称LOCAL_STATIC_LIBRARIES必须与LOCAL_MODULE其他库/模块中声明的名称相同。

您可能需要的所有内容都可以在 NDK 文件夹中的 NDK 文档中找到。对于预建库,有单独的部分。

于 2016-02-01T07:56:27.730 回答