2013-01-13 126 views
2

我在JNI文件夾這些文件:的Android NDK:建立我的靜態庫

  • Android.mk

  • Application.mk

  • m_lanczos.c

  • m_lanczos .h

  • sresolution.cp p

,我只想用我的圖書館像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) 

回答

1

有兩件事情是錯的:

  1. 你已經忘了編譯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) 
    
  2. m_lanczos是一個STATIC_LIBRARY:
    然後,你必須建立它,幷包括它:

    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) 
    

但我認爲這將是第一個, 我希望我幫助:)

+0

謝謝你的回答!我認爲這應該是第一個!但它不適合我!我沒有提到我也使用OpenCV庫,也許這是關於它的!無論如何,我在m_lanczos.h中編寫所有的代碼,它的工作原理! – w3u37905