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

android ndk-build에 관하여 궁금한 점이 있습니다~

0 추천
android ndk-build에 관하여 궁금한 점이 있습니다~

ndk-build로 .so를 만들떄 cpp 파일들을 가지고 라이브러리를 생성하는데, 이때 cpp 파일의 헤더파일들은 LOCAL_C_INCLUDES 에 path를 적어 줘야 하는 것으로 알고 있습니다.

여기서 궁금한점이 .so 생성할때는 오직 cpp 파일만을 가지고 생성을 하는 건가요?? 아니면 path에 등록한 헤더를 바탕으로 생성을 하는 건가요???

만약 path를 바탕으로 생성을 하는 것이라면,,,path를 지정을 해줬는데 jni에서 header가 include가 안되는데 이유가 궁금합니다. ㅠ,ㅠ
treda (340 포인트) 님이 2016년 1월 19일 질문

1개의 답변

0 추천
 
채택된 답변

#include 한 헤더는 소스로 들어갑니다. 하지만 so를 만들면서 어셈블링 + strip이 되기 때문에 NDK에서 바로 사용을 할 수 없습니다. 따라서 so를 사용하시려면 빌드한 헤더 파일을 참조하도록 LOCAL_C_INCLUDES  에 경로를 넣어 주셔야 합니다. 

익명사용자 님이 2016년 1월 19일 답변
treda님이 2016년 1월 19일 채택됨
잘 이해가 안가서 그런데요 ...
결국 빌드시에 필요한게아니라 참조를 위해서
LOCAL_C_INCLUDES에 정의를 한다는 말 인가요??
네 그렇다 보셔도 됩니다. 헤더에 소스를 넣는 경우도 아주 가끔 있긴 합니다만..
보통은 헤더는 이런 메소드가 있다고 컴파일러에 알려주기 위한 용도로 사용되며, 컴파일 후 링크 시 실제 소스들이 매핑 됩니다. .
...