관리 메뉴

드럼치는 프로그래머

[JNI/NDK] 이미 만들어진 so 파일 링크하기 (for 안드로이드) 본문

★─Programing/☆─JNI | NDK

[JNI/NDK] 이미 만들어진 so 파일 링크하기 (for 안드로이드)

드럼치는한동이 2016. 5. 25. 13:08

a.so 란 파일을 만들었습니다.

android.mk 에서 b.so 를 만드는데 a.so 와 링크 하려고 합니다.

a.so 를 obj/local/armeabi 여기다가 나둬야지 정상적으로 링크가 되고 있는데요..

a.so 의 위치를 다른곳에다 넣고 path를 주는 방법이 있나요?

LOCAL_SHARED_LIBRARIES 나 LOCAL_STATIC_LIBRARIES 를 사용할때 local 에 있는 so나 a 파일의 path를 주려면 어떻게 해야하나요?

 

이름아이콘 락크미슈
2010-11-03 09:45
gcc를 사용할때랑 똑같이 적으시면 됩니다.
-L{libpath} -l{libname}
   

 

이름아이콘 아돌
2010-11-03 11:01
《Re》락크미슈 님 ,
어디다가 써야되는거죠? 다 안되는것 같은데요...

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

LOCAL_C_INCLUDES := $(LOCAL_PATH)/inc
LOCAL_SRC_FILES :=
       src/aaa.cpp

LOCAL_LDLIBS := -L$(LOCAL_PATH)/lib -llog
LOCAL_SHARED_LIBRARIES := bbb

include $(BUILD_SHARED_LIBRARY)

이렇게 써도 안되네요... /jni/lib에 libbbb.so 를 넣어두고 빌드할 수 있는 방법이 없을까요?
   
이름아이콘 gynoid
2010-11-07 14:54
LOCAL_LDFLAGS+=-L./jni/lib -L$(LOCAL_PATH)/jni/lib -lbbbb 이렇게 넣어보시면 어떨까요?
LOCAL_LDLIBS 에 추가해도 동작할 것 같은데요.
   
이름아이콘 아돌
2010-11-08 16:23
《Re》gynoid 님 , 답변 감사합니다.
이것저것 해보다가 LOCAL_SHARED_LIBRARIES 없이
LOCAL_LDLIBS := $(LOCAL_PATH)/lib/libbbbb.so
앞에 -l 빼니까 되네요 ㅡㅡ;;

 

[출처] http://www.kandroid.org/board/board.php?board=AndroidTechQnA&command=body&no=4066

Comments