2010-04-09 3 views
0

iPhone 응용 프로그램에서 사용할 x264를 컴파일하려고합니다. 거기에 플랫폼에 대한 사용 ffmpeg 컴파일하는 방법에 대한 지침을 참조하십시오 : http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2009-October/076618.html,하지만 난 아이폰에 대한 x264 컴파일이 완료 찾을 수없는 것. 이 소스 트리는 ARM 플랫폼을 지원하는 것으로 보이는 http://gitorious.org/x264-arm입니다. 여기 iPhone 용 x264 및 ffmpeg를 컴파일하려고합니다. "파일에 필요한 아키텍처 암이 없습니다"

내 구성 라인 :

 
./configure --cross-prefix=/usr/bin/ --host=arm-apple-darwin10 --extra-cflags="-B /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk/usr/lib/ -I /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk/usr/lib/" 

... 그리고 configure 안에 내 어셈블러로 가스 전처리 스크립트 (위의 첫 번째 링크)을 사용하고 있습니다 :

 
gas-preprocessor.pl gcc 

I 컴파일을 시작하면 잠깐 동안 덩어리가 생기고 다음 경고 및 정의되지 않은 심볼의 거대한리스트가 튀어 나옵니다.

내 생각 엔이 문제는 "파일에 필요한 아키텍처 팔이 없습니다"라는 경고와 관련이 있습니다.

답변

1

많은 개발자가 XCode 4.3으로 전환 한 후 FFMpeg 소스를 컴파일하는 데 문제가 있습니다. 이전 릴리스와 달리 XCode4.3은 번들로 제공되며 초기에는 명령 줄 도구가 포함되어 있지 않기 때문입니다.

우리는 범용 스크립트를 만들려고했습니다.

  • 당신이 엑스 코드를 가지고 있어야 당신이 XCode4.2 또는 4.3은 Mac에 설치해야

    1. : https://github.com/melnikov/ffmpeg4iphone_4.3

      전제 조건 : 당신은 여기 XCode4.3와 함께는 FFmpeg을 구축하기위한 완벽한 환경을 다운로드 할 수 있습니다 명령 줄 도구가 설치되어 있어야합니다 (Xcode -> 환경 설정 -> 다운로드를 통해 설치할 수 있습니다)

    2. 당신은 맥 설치를위한 자식이 있어야합니다.

    지침과 설명 : ('chmod를 + X ./build을 실행하여) 어떤 디렉토리에

    1. 장소 빌드 스크립트 (예를 들어,/tmp를/ffbuild) 거기에 설정 실행 플래그
    2. 스크립트를 실행하십시오. 그것이 무엇을 할 것인가 :
    3. FFmpeg 디렉토리에 FFMpeg의 최신 버전을 체크 아웃 할 것입니다. (현재 FFmpeg를 이미 체크 아웃 한 경우이 주석을 안전하게 기입 할 수 있습니다)
    4. Xcode의 위치를 ​​찾으려고 시도합니다. Xcode가 설치되어 있지 않으면 종료됩니다.
    5. Xcode 내부에 gcc가 있는지 확인합니다.응용 프로그램은과가 발견되어 있지 않은 경우 위의 단계, 스크립트가
    6. 이 build_results에게 폴더를 생성합니다 원활하게 실행 한 경우
    7. (엑스 코드 명령 도구가 설치되어 있지 않은 경우이 문제가 발생할 수) 종료됩니다
    8. 이후는 FFmpeg의 구성을 실행하고 3 것 다른 아키텍처 (armv6, armv7, i386)는 build_results 폴더
    9. 안에 각각의 디렉토리에 넣고 lipo를 실행하고 universal libs를 만듭니다 (build_results/Universal 폴더에 넣을 것입니다).

    나는 동료의 Mac에서 스크립트를 테스트했으며 그 중 일부는 Xcode.app에서 mdfind의 결과를 반환하지 않는 경향이 있습니다. 따라서 스크립트가 'Xcode가 설치되지 않았습니다.'를 반환하면 Xcode.app의 경로에 XCODEPATH 변수를 설정하십시오.

  • +0

    다시 말해서 블로그 게시물의 내용을 대답으로 옮겨서 더 쉽게 사람들이 참조하고 더 부패 링크에 저항했다. –

    +0

    감사합니다, Brad - 훨씬 쉬울 것 같습니다. – StexGroup