'xcode'에 해당되는 글 1건

  1. 2010.12.27 Movist compile하기 (2)
한국의 맥 사용자에겐 거의 필수 유틸인 Movist를 컴파일해 보았습니다. 코드 업데이트도 안된지 꽤 되었고 그동안 snow leopard에서는 컴파일이 안되는 줄 알았는데 몇번의 시행 착오 끝에 컴파일에 성공했습니다. 컴파일은 되지만 동작이 정말 잘 되는지는 모르겠지만요.




Movist 홈페이지 : http://cocoable.tistory.com/
Movist 구글코드 페이지 : http://code.google.com/p/movist/
Movist 소스 저장소 : http://movist.googlecode.com/svn/trunk

Movist를 compile 하기 위해서는 git와 yasm이 설치되어 있어야 합니다.





FFmpeg library compile하기
    $ svn checkout http://movist.googlecode.com/svn/trunk movist
  • 우선 Movist 소스코드를 가져옵니다.
  • movist/contrib 에 있는 bootstrap 파일을 수정합니다.
    • SDK_TARGET=10.4 를 SDK_TARGET=10.6 으로 수정
      MACOSX_SDK = /Developer/SDKs/MacOSX10.4u.sdk 를 MacOSX10.6.sdk 으로 변경
  • movist/contrib/src 에 있는 build_ffmpeg_mt.sh 파일을 수정합니다.
    • SDK_TARGET=10.4 를 SDK_TARGET=10.6 으로
      MACOSX_SDK = /Developer/SDKs/MacOSX10.4u.sdk 를 MacOSX10.6.sdk 으로
      #git clone git://git.ffmpeg.org/libswscale/ ffmpeg-mt/libswscale 의 주석 #를 제거합니다.
  • movist 디렉토리에서 build_extlib.sh를 실행합니다.
  • patch 파일이 뭔가 문제가 있지만 컴파일은 일단 잘 됩니다.
  • movist/contrib/lib 에 필요한 라이브러리가 생성되었습니다.

Movist compile하기
  • Movist project 을 Xcode로 엽니다.
  • Targets에 있는 Movist의 Info 창을 엽니다.
  • Architectures 항목의 Base SDK 란을 Latest Mac OS X 로 변경합니다.
  • Linking 항목의 Other Linker Flags 의 MacOSX10.4u.sdk를 MacOSX10.6.sdk로 변경합니다.
  • build 해보면 무수한 error message가 나올 겁니다. MMovie_QuickTime.h 의 #import <QTKit/QTKit.h> 가 다른 해더보다 뒤에 올 때 이런 문제가 생깁니다. SDK가 버전업되면서 해더의 dependency에 문제가 생긴 모양입니다. 제일 단순한 해결책은 (정석은 아니지만) Movist.h 파일의 맨 위에 #import <QTKit/QTKit.h> 를 추가하는 것입니다.
  • 이제 문제없이 build 됩니다. ppc일 때 제대로 도는지는 모르겠네요.

Posted by luuvish

댓글을 달아 주세요

  1. 유아독존 2011.02.12 10:04  댓글주소  수정/삭제  댓글쓰기

    이번에도 열심히 따라했는데 워닝은 233개 에러는 14개가 나네요. ㅡ,.ㅡ;;; 흑흑!~

    "_av_get_channel_layout_string", referenced from:
    _avcodec_string in libavcodec.a(utils.o)

    에러는 이런식으로 전부 ffmpeg 라이브러리에서 난다고 나오는데
    이유를 모르겠어요 ㅡ,.ㅡ;;;

    혹시 아실려나요? T.T

  2. BlogIcon luuvish 2011.02.14 15:01  댓글주소  수정/삭제  댓글쓰기

    ffmpeg 코드가 업데이트 되면서 해당되는 function이 지워진 모양입니다. git clone 한 후 2011년 초쯤의 버전으로 revert 해보세요.