如何使ndk-build创建名为库的可执行文件?

时间:2014-07-14 16:11:57

标签: android makefile android-ndk android.mk

我希望我的原生可执行文件为auto-populated/data/data/.../lib/。为此,它的名称为lib*.so。但是,如果我尝试设置此名称,Android NDK会抱怨:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := libhello.so
LOCAL_SRC_FILES := hello.c
include $(BUILD_EXECUTABLE)
Android NDK: jni/Android.mk:hello.so: LOCAL_MODULE_FILENAME must not contain a file extension

2 个答案:

答案 0 :(得分:2)

解决方法:使用Android NDK想要的名称安装,然后在安装后重命名:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := hello
LOCAL_SRC_FILES := hello.c
include $(BUILD_EXECUTABLE)

all:
        mv ${NDK_APP_DST_DIR}/hello ${NDK_APP_DST_DIR}/libhello.so

您的应用程序无需任何准备步骤即可调用可执行文件/data/data/<package>/lib/libhello.so

答案 1 :(得分:-1)

您正在尝试构建可执行文件而不是共享库。你想改变这个:

include $(BUILD_EXECUTABLE)

到此:

include $(BUILD_SHARED_LIBRARY)