OpenSL ES를 사용하기위해 NDK로 빌드를 하고 있는데, 컴파일러가 SLES/OpenSLES.h 파일을 찾지 못해 잠시 당황 했다.

 

분명 platform 디렉토리에는 위 경로에 헤더파일이 있는데 찾지를 못해서 뭐가 문제인가 고민을 좀 했다.

 

Android.mk 파일에 -I 옵션을 추가해 줘야 하나 고민하던 차에, stlport를 사용할 때도 Application.mk 파일에 한 줄만 넣어주면 되는데, 복잡하게 되어 있을리가 없을 것 같아서, 우선 ndk-build의 -d 옵션으로 빌드 중 어떤일이 일어나는지 살펴 봤다.

 

엄청난 양의 로그가 나오고나서, 마지막 줄에 자동으로 추가되는 -I 옵션을 확인할 수 가 있었다.

 

기본으로 포함하는 include path는 platform/android-3 였다.

 

역시나 해당 platform 버전에는 SLES가 없었고 말이지...;;

 

그래서 찾아보니 target platform을 지정하는 옵션이 있더라!

 

그리고

 

TARGET_PLATFORM=android-19

 

를 추가하니 문제 해결!

 

 

참고로, 당연한 이야기 이지만 link할 library는 명시적으로 추가 해 주어야 함.

 

-lOpenSLES

 

이렇게 말이지...

 

Posted by 세월의돌