요즘 Android NDK 를 이용해서 개발을 진행중인데, 화가 나는(?) 일이 발생해서 포스팅을 남기게 되었습니다. $(NDK_HOME)/docs/PREBUILTS.html 에 보면 

A prebuilt module does not build anything. However, a copy of your prebuilt shared library will be copied into $PROJECT/obj/local, and another will be copied and stripped into $PROJECT/libs/<abi>.

 
이런 문구가 있습니다. 하지만 시키는 대로 하니 복사는 커녕 어떠한 동작도 발생하지 않는 것을 발견했습니다. 미치는 지 알았습니다. 한 두시간을 구글링 했어도 어디에서도 명확히 답을 주는 부분이 없었습니다. 보통 이정도라면 방법은 하나 입니다. 직접 빌드 시스템을 까보는 수밖에 없지요.  

$(NDK_HOME)/build/core/prebuilt-static-library.mk 

위의 파일이 prebuilt-static-library 에 관한 부분입니다. 그 안을 보면 다음과 같은 문구가 있습니다. 

# Prebuilt static libraries don't need to be copied to TARGET_OUT
# to facilitate debugging, so use the prebuilt version directly
# at link time.


즉 요약을 하자면, 매뉴얼에서는 복사를 한다고 써 있지만, 실제로 동작하는 코어 모듈에서는 직접 링크를 하라는 식으로 쓰여져 있더군요. 

결론은 prebuilt-static-library 를 사용할려면 실제로 매뉴얼에 있는대로 동작을 하지 않습니다. 직접 라이브러리 링크를 걸어주시기를 추천합니다. 
 

+ Recent posts