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

tool-chain 으로 컴파일 시 외부라이브러리 및 헤더 파일 불러오는 방법 문의 드립니다.

0 추천

안녕하세요. 현재 저는 안드로이드에서 FFmpeg + h264 를 사용하기 위해 삽질중에 있습니다. 안드로이드 펍을 비롯한 여러 군대에서 제공해준 "안드로이드 에서 FFmpeg 사용하기" 레퍼런스들을 참조하였습니다. 대부분의 레퍼런스들이 2년여 전에 나온 것 들이라, 남의 것을 그대로 사용하는건 큰 공부가 되지 않을것 같아, 오기를 가지고 최근에 릴리즈 된 1.2 버젼을 사용해 보려고 하였습니다. 제가 리눅스를 써본적이 없어서 그런지 많이 힘들더군요. 그래도 어찌어찌 다 되어 아마도 마지막... 고비가 아닐까 싶어 질문 드립니다.

 

0. 참조 강좌

남은 그루터기 님
http://www.androidpub.com/1645684

개똥철학을 가진 가시나무
http://iamlow.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C%EC%9A%A9-X264-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EB%B9%8C%EB%93%9C

 

1. 개발 환경

Mac, NDK r8d, 남은 그루터기 님 강좌대로 tool-chain 설치하여 진행, FFmpeg 1.20, x264 최신 버젼

 

2. 문제 발생

먼저 x264 라이브러리를 make & install 했습니다. configure 시 prefix 를 /toolchain 설치 경로/sysroot/usr 로 설정해 주었더니 ..../sysroot/usr/lib 와 ..../sysroot/usr/include 에 각각 libx264.a 와 x264*.h 가 생성된것을 확인했습니다. 다음 FFmpeg 의 configure 상에도 preifx 를 동일하게 /toolchain 설치경로/sysroot/usr 로 설정해 주었습니다. 

그리고 나서 ndk-build 를 수행했더니 x264 코덱 관련 컴파일 시 "x264.h" 를 찾을 수 없다고 컴파일 오류가 발새했습니다. 해당 소스 상에는 include "x264.h" 라고 되어있던데 include 가 안된것 같습니다. 그래서 정말 무식하게 x264*.h 파일들을 복사해 주었습니다. 그러자 이번에는 libx264.a 를 찾을 수 없다고 나옵니다. 링크가 안되니 reference 어쩌구 저쩌구 에러가 주르륵 쏟아집니다. 당연히 빌드는 실패합니다.

configure 설정 시 
--extra-cflags = " -I참조할 외부 include 파일 경로"
--extra-ldflags = " -L참조할 외부 library 파일 경로"
를 추가해야 한다는 글을 읽었습니다. prefix 에 지정해 주었던 경로들을 다시 적었습니다. 역시 여전히 안됩니다.

 

이제 한끝만 더되면 될거 같은데... 외부 라이브러리를 참조하는 방법 또는 이 문제에 대한 혜안을 주수시면 정말 감사하겠습니다. 토요일에 폰도 잃어버리고, 링크는 안되고, 요즘 자꾸 패배자가 된 기분입니다. ㅠㅠ

소년택이 (180 포인트) 님이 2013년 4월 2일 질문

1개의 답변

0 추천

 

// header
LOCAL_C_INCLUDES := {path}
 
// libs
LOCAL_LDLIBS := {path}

 

aucd29 (218,390 포인트) 님이 2013년 4월 2일 답변
...