마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

jni 관련해서 질문드립니다.

0 추천
c++ 을 통해 함수들을 라이브러리화 하여 *.lib 형태로 만들었습니다.

 

이 함수들을 jni 에서 사용하려고 하는데

 

헤더에서 함수는 찾아오는데 lib 안에 있는 정의는 못찾아오는거같네요

 

undefined reference to ~~ 이런 에러가 나옵니다

 

c++에서와 같이

#pragma comment(lib,"~~~~") 이런식으로 라이브러리를 포함시키려고 했는데

이 기능이 jni 에서는 안되는건가요?

 

 

어떻게 해야 jni에 제 lib를 연결시킬수 있을까요?

 

검색해도 답이 안나와서 쩔쩔매고있습니다 ㅠㅠ도와주세요
이노마골드 (140 포인트) 님이 2015년 8월 27일 질문

1개의 답변

0 추천

빌드 할 때  static 라이브러이면, so에 다 포함을 시키겠다고 지정을 해 주시던지, shared 라이브러리로 만들어 참조한다고 해 주셔야 하며,  shared 라이브러리면, 참조 한다고 지정을 해 주셔야 합니다.

둘다  Android.mk파일의  LOCAL_LDLIBS나 LOCAL_LDFLAGS로 지정합니다.

 

또한 shared 라이브러리이면, dlopen을 이용해서 심볼을 로드 해서 사용하는 것도 가능합니다.

 

단지 *.lib 이면, 설마 PC에서 쓰는 라이브러일 듯 한데.. 맞나요?  다른 컴파일 툴로 컴파일 된 라이브러리는 동작 하지 않습니다.

그 경우 ndk 로 cross compile 해서 *.a(static 라이브러리) 혹은 *.so(shared 라이브러리)로 만드는 것부터 선행 해 주셔야 합니다.

 

 

익명사용자 님이 2015년 8월 27일 답변
2015년 8월 27일 수정
...