【发布时间】:2011-12-01 13:36:10
【问题描述】:
我想在我的项目中使用来自一个框架的三个静态库。这些库称为libtinySAK_armv7-a.a, libtinyNET_armv7-a.a and libtinyHTTP_armv7-a.a。我已将它们放在与Android.mk和Application.mk 相同的文件夹中。
我的本机代码依赖于它们,因此我想将它们包含在我的共享库中。
根据我在 stackoverflow 和谷歌上阅读的内容,我相信 android.mk 应该看起来像这样:
# TINYSAK
include $(CLEAR_VARS)
LOCAL_MODULE := tinySAK
LOCAL_SRC_FILES := libtinySAK_armv7-a.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../doubango/tinySAK/src/
include $(PREBUILT_STATIC_LIBRARY)
# TINYNET
include $(CLEAR_VARS)
LOCAL_MODULE := tinyNET
LOCAL_SRC_FILES := libtinyNET_armv7-a.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../doubango/tinyNET/src/
include $(PREBUILT_STATIC_LIBRARY)
# TINYHTTP
include $(CLEAR_VARS)
LOCAL_MODULE := tinyHTTP
LOCAL_SRC_FILES := libtinyHTTP_armv7-a.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../doubango/tinyHTTP/include/
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libtest
LOCAL_SRC_FILES := \
../../test/stack.cpp \
../../test/main.cpp
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../../test/include/ \
$(LOCAL_PATH)/../../../doubango/tinyHTTP/include/ \
$(LOCAL_PATH)/../../../doubango/tinySAK/src/ \
$(LOCAL_PATH)/../../../doubango/tinyNET/src/
LOCAL_STATIC_LIBRARIES := \
tinySAK \
tinyNET \
tinyHTTP
include $(BUILD_SHARED_LIBRARY)
我的应用程序.mk:
APP_STL := stlport_static
APP_ABI := armeabi-v7a
我在编译时遇到的错误(项目目录中的“ndk-build”)是
jni/Android.mk:tinySAK: LOCAL_SRC_FILES points to a missing file
我想其他 2 个库也失败了。为什么它找不到它们? 除此之外,我在 makefile 中是否还有其他错误?
谢谢
【问题讨论】:
标签: android makefile java-native-interface android-ndk