【问题标题】:Adding library to NDK project - eclipse将库添加到 NDK 项目 - eclipse
【发布时间】:2016-05-08 03:12:42
【问题描述】:

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)

提前致谢。

【问题讨论】:

    标签: android android-ndk box2d liquidfun


    【解决方案1】:

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

    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 文档中找到。对于预建库,有单独的部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-29
      • 2011-10-15
      • 2015-05-17
      • 1970-01-01
      • 2015-06-29
      • 1970-01-01
      相关资源
      最近更新 更多