2015-01-21 4 views
2

2 개의 정적 라이브러리 (.a) 파일이 있습니다. 이 두 파일은 기본적으로 동일한 라이브러리입니다. 하나는 아키텍처 armv7 용으로, 다른 하나는 아키텍처 i386 용으로 제작되었습니다. 이 두 라이브러리를 하나의 파일로 병합 할 수 있습니까? 불행히도 다시 빌드 할 소스 코드가 없습니다. armv7 및 i386 용으로 빌드 된 두 개의 .a 파일을 병합하는 방법은 무엇입니까?

은 사전에 감사합니다 : D

당신은 엑스 코드와 함께 둘의 lipolibtool 명령 행 도구로 무엇을 할 수 있는지 알게 할 필요가

답변

12

.

Here's a tutorial that might get you started. 아키텍처는

  • lipo -extract armv7s libFirst.a -o libFirst_armv7s.a 하나
  • 로 아키텍처 특정 운영자와 파일을 결합하면
  • libtool -static libFirst_armv7.a libSecond_armv7.a -o libCombined_armv7.a
  • 을 원하는 아키텍처를 추출로 .a 파일이 무엇인지 알아

    1. lipo -info libFirst.a libSecond.a :

      단계

      같은 것을 포함
    2. lipo -create libCombined_armv7.a libCombined_armv7s.a -o libCombined.a 그러면 최종 .a 라이브러리가 생성됩니다.

    여기에 도구를 사용하여 결합 된 정적 라이브러리를 만드는 방법을 설명하는 some older documentation from Apple이 있습니다.

    +0

    정말 고마워요! 그것은 내가 찾고 있었던 것이다! – Joey

    +0

    링크가 올바르지 않았기 때문에 링크를 편집했습니다. 다른 사람이 관심이 있다면 여기에 URL이 있습니다. https://cvursache.com/2013/10/06/Combining-Multi-Arch-Binaries.html – gikygik

    +0

    또한'lipo -info' 명령은 라이브러리 아카이브가 뚱뚱한 지 여부에 대한 정보를 제공합니다. 즉, 결합하려는 아카이브 파일이 뚱뚱하지 않은 경우 # 4를 직접 사용할 수 있습니다. –