Android ndk Android NDK:构建我的静态库

Android ndk Android NDK:构建我的静态库,android-ndk,Android Ndk,我在jni文件夹中有以下文件: Android.mk Application.mk m_lanczos.c m_lanczos.h sresolution.cpp 我只想在resolution.cpp中使用我的库,如: #include"m_lanczos.h" 我还需要在Android.mk中添加什么?谢谢大家! LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := super LOCAL_SRC_FIL

我在jni文件夹中有以下文件:

  • Android.mk

  • Application.mk

  • m_lanczos.c

  • m_lanczos.h

  • sresolution.cpp

我只想在resolution.cpp中使用我的库,如:

#include"m_lanczos.h"
我还需要在Android.mk中添加什么?谢谢大家!

 LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := super
LOCAL_SRC_FILES := sresolution.cpp 
LOCAL_LDLIBS +=  -llog -ldl

include $(BUILD_SHARED_LIBRARY)

有两件事可能是错误的:

  • 您忘记编译m_lanczos.c:
    那么您的Android.mk应该如下所示:

    LOCAL_PATH := $(call my-dir)  
    include $(CLEAR_VARS)  
    
    LOCAL_MODULE := super  
    LOCAL_SRC_FILES := sresolution.cpp m_lanczos.c  
    LOCAL_LDLIBS +=  -llog -ldl  
    
    include $(BUILD_SHARED_LIBRARY)  
    
  • m_lanczos是一个静态库:
    然后,您必须构建并包含它:

    LOCAL_PATH := $(call my-dir) 
    
    include $(CLEAR_VARS)       
    LOCAL_MODULE := m_lanczos
    LOCAL_SRC_FILES := m_lanczos.c  
    LOCAL_LDLIBS +=           #needed librarys for m_lanczos, probably nothing       
    include $(BUILD_STATIC_LIBRARY) 
    
    include $(CLEAR_VARS)         
    LOCAL_MODULE := super  
    LOCAL_SRC_FILES := sresolution.cpp
    LOCAL_LDLIBS +=  -llog -ldl  
    LOCAL_STATIC_LIBRARIES := m_lanczos
    include $(BUILD_SHARED_LIBRARY)
    
  • 但我认为这将是第一次,
    我希望我能帮忙:)

    谢谢你的回答!我想应该是第一个!但这对我不起作用!我没有提到我也使用OpenCV库,也许就是这个!不管怎样,我用m_lanczos.h编写了所有的代码,它可以工作!