ndk version : r8
ffmpeg version : 0.10.4
host os : windows 7
terminal : cygwin
참고 자료 : [Android NDK FFmpeg 컴파일 강좌 (4/4)]
문제 내용
참고 자료를 통해 ffmpeg를 빌드하던 중 codec_names.h 를 찾지 못한다는 문제가 발생.
D:/Eclipse_Workspace_Android/FFmpegBasic/jni/ffmpeg/libavcodec/utils.c:1568:36: error: libavcodec/codec_names.h: No such file or directory
/home/JeonYoungHo/android-ndk-r8/build/core/build-binary.mk:240: recipe for target `/cygdrive/d/Eclipse_Workspace_Android/FFmpegBasic/obj/local/armeabi-v7a/objs/avcodec/utils.o' failed
make: *** [/cygdrive/d/Eclipse_Workspace_Android/FFmpegBasic/obj/local/armeabi-v7a/objs/avcodec/utils.o] Error 1
문제 원인
ffmpeg 빌드시 make 파일들을 쭉 따라가다보면
ffmpeg/libavcodec 에 보면 codec_names.sh 파일이 존재한다. (헤더가 아닌, 쉘 스크립트 프로그램 파일임)
이 쉘 스크립트를 실행 하여 codec_names.h 를 생성하는 구조이다.
codec_names.h는 보통 ndk-build 명령을 통해 build 진행시 auto generate 된다. (make 파일들을 제대로 작성했다는 가정 아래)
어떤 이유인지는 모르겠지만 본인은 codec_names.h 가 자동 생성되지 않아서 build 가 진행되다가 멈추었다.
참조 자료를 따라하며 build 를 시도한다면, libavcodec 디렉토리에
Makefile2 를 만들었을 것이고, 그것을 열어보면해결 방법
요약 : codec_names.sh 를 이용해 codec_name.h 를 수동으로 생성해준다.
구체적 방법
ffmpeg/libavcodec 디렉토리에 위치한 상태에서 gcc를 통해 다음과 같이 실행.
$ gcc -DLIBAVCODEC_VERSION_MAJOR=53 -E avcodec.h | ./codec_names.sh ../config.h codec_names.h
에러가 날 것이다.
에러내용을 자세히 읽어보면 #include "경로/헤더파일" 의 상대경로/절대경로 문제이다.
에러난 파일을 vi로 열어서 경로를 상대경로로 지정해준다.
예) In file included from ../libavutil/avutil.h:328,
from ../libavutil/samplefmt.h:22,
from avcodec.h:30:
../libavutil/common.h:38:32: libavutil/avconfig.h: No such file or directory
avcodec.h:457:36: libavutil/audioconvert.h: No such file or directory
avcodec.h 의 457라인에서 libavutil/audioconvert.h 를 찾을수 없다는 뜻.
avcodec.h 를 열어 457라인을 보면 #include "libavutil/audioconvert.h" 가 있을 것이다.
#include "../libavutil/audioconvert.h" 로 수정해준다. (각자 자신의 기준에서 수정할 필요가 있다)
'수행 프로젝트 이력 > 스마트폰을 이용한 감시시스템 [2011.09~ 2012.09]' 카테고리의 다른 글
FFmpeg 참고자료 (7) | 2012.10.03 |
---|---|
libavcodec을 사용한 H.264 인코딩/디코딩 - C code (7) | 2012.10.03 |
[작업일지] 2012년 9월 21일 - 금 (0) | 2012.09.21 |
핸드폰 Grab 해주는 부분 구매 (0) | 2012.08.05 |
스마트폰을 'CCTV·블랙박스'로 활용하세요 (0) | 2012.04.03 |
NETCURY NTI-300B (무선WiFi, IP카메라) (0) | 2011.10.14 |