ffmpeg을 이용한 app제작중 avutil관련 링크 에러
안녕하세요.
페도라7에서 이클립스 CDT를 이용하여
FFMpeg을 이용한 App를 만들고 있습니다.
이클립스의 프로젝트 셋팅에서 FFmpeg을 위한 Compiler세팅 및 Linker세팅 제대로 해주었는데요.
FFmpeg을 사용하기 위해서 ffMpeg을 빌드한 뒤에 필요한 라이브러리 (avutil, avformat, avcodec)및 헤더파일을
제가 만들고 있는 App의 프로젝트 폴더에다 복사를 하였습니다.
main함수의 앞부분에 ffmpeg초기화를 위한 av_register_all()을 호출하도록 추가하고 난뒤에
프로젝트 빌드를 하면 링크 부분에서 에러가 수백개 발생합니다.
링크의 에러는 avformat에서 참조하는 av_log, av_malloc, av_free등(avutil lib에 포함된 함수)을
찾지 못한다고 표시합니다. 위 함수들이 포함된 avutil lib역시 제대로 링크가 되었구요.
av_register_all()을 호출하지 않도록 하고, App의 Source파일에서 av_malloc, av_free함수를 직접 호출해보면
링크에러는 발생하지 않고 정상적으로 빌드가 됩니다.
이말은 avutil lib가 제대로 링크가 되었는것 같은데, avformat에 있는 av_register_all함수를 호출하도록 하면
avutil에 있는 함수들을 찾지 못하고 링크에러가 발생하네요.
라이브러리 서로간에 어떠한 연동을 해주는 별도의 셋팅이 필요한건지 그건 아닌거 같은데
조언좀 해주실분 무지 감사하겠습니다. T.T
C++로 컴파일하면 헤더 인클루드할때
C언어로 링크해야 합니다.
즉
extern "c" {
#include "avformat.h"
}
이렇게 해야 합니다.
댓글 달기