요즘 C/C++ 로 된 OpenCV 라이브러리를 안드로이드 플랫폼 안에 포팅해서 자바 라이브러리로 만드는 과정 중인데.. 순수 C App는 안드로이드 내부의 라이브러리로 빌드/실행이 가능한데 C++ 쪽은 문제를 겪고 있다.
내가 생각한 해결 방법은 그냥 GNU C++ library를 통째로 안드로이드 안으로 이식하려고 생각한 것이었다.
그러나 나같은 삽질을 한 사람이 또 있겠지 싶은 마음에..
여기저기 뒤져보던 중 구글의 Andorid Interanls 그룹에서 여러가지 포스팅 들을 찾을 수 있었는데,
글 들 중 가장 최신의 글은 삽질하지 말고 기다려라. 라는 것이다-_-
좌절이다.. OTL…
그러나 그 이전인 2월의 글 들 중 C++ Application 을 포팅하는데 성공했다는 사람(Susmith M R)이 있다.
이 포스팅(Dynamic Shared Library in Android Another Approach – Don’t Use android Linker)에서 찾을 수 있는데, 안드로이드 내부의 링커(/system/lib/linker)를 사용하지 말라는 이야기이다.
gcc의 옵션으로 -dynamic-linker=/system/lib/linker 대신,
링커 파일(ld-linux-so.6)을 넣고 –dynamic-linker=/system/lib/ld-linux-so.6 옵션으로 컴파일 한다는 건데.
링커 자체가 바뀐다면 추측상으론 DATA 섹션에서 RO 영역과 RW 영역 구분을 없앴던 부분도 수행하지 않고(바꿔 말하면 armelf_linux_eabi.xsc 를 사용하지 않고) 사용할 수 있을 듯도 하다. 음.. 잉? 아닌가? 음.. 생각해봐야겠다..
한번 해봐야겠다.
참고 :
Problem loading C++ library in android
Need little help for JNI
Dynamic Shared Library in Android Another Approach – Don’t Use android Linker
유용한 정보 감사합니다!
그런데 dasomoli가 아니라 dasomdoli 아닌가요? ㅎㅎ; 지금 쓰신건 다솜올리인데 ㅇ.ㅇa
댓글남겨주셔서 저도 감사합니다^^
그리고 id는 Notice를 참고해주세요~ ㅋㅋ