2014-01-14 4 views
1

나는 10.8에서 응용 프로그램을 컴파일하려고, 그것은 otool에 따르면, 라이브러리가/옵션/X11/lib에OSX 10.8에는 libpng 호환성이 있습니다. 27. Mavericks는 25가 있습니다.

$ otool -L libpng15.15.dylib 
libpng15.15.dylib: 
    /opt/X11/lib/libpng15.15.dylib (compatibility version 27.0.0, current version 27.0.0) 
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) 
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0) 

에 위치하고 호환 버전 (27)을 가지고하는 libpng15.15 라이브러리에 바인딩 이제 실행 파일을 다른 Mac에 복사하고 실행하려고하면이 mac libpng에서 버전 25.0.0을 제공하므로 실행할 수 없다는 메시지가 나타납니다. 라이브러리는/usr/X11/lib에 있습니다. 이 Mac은 10.6.8이었으며 개발자 머신이 아니며 Apple Store 다운로드로 10.9로 업그레이드되었습니다.

10.9가 10.8보다 낮은 libpng 호환성 버전을 가질 수 있습니까?

편집 : X11 라이브러리 용 헤더 파일이 필요하다는 사실을 발견 했으므로 XQuartz를 설치했습니다. 그러나 XQuartz는 호환성이 높은 버전으로 라이브러리를 업그레이드합니다. 이것은 로컬 시스템에 어떤 문제도 발생시키지 않지만, XQuartz를 거기에 설치하지 않으면, 작동하지 않을 것입니다. 헤더 파일을 수동으로 복사하지 않아도이 문제를 해결할 수있는 더 좋은 방법이 있습니까?

+0

'libpng'에 링크 만하는 것이 아닌 이유는 무엇입니까? – trojanfoe

+0

@trojanfoe : 바인딩 대상을 실제로 결정하는 matplotlib입니다. 나는 그것을 해킹 할지도 모르지만 어쨌든 그것은 작동해야한다. 그것은 나를 괴롭히는 호환성 버전의 차이입니다. –

+0

'/ opt'에서 무언가를 사용했다면 표준 라이브러리가 아닙니다. 이것은 당신이 구축하고있는'.app' 파일입니까? (그렇다면 필요한 모든 라이브러리를 묶을 수 있습니까?) – trojanfoe

답변

3

/usr/X11에서 /opt/X11 사이의 심볼릭 링크가있는 경우 Apple 설치 /usr/X11 위치를 인수 한 타사 설치 프로그램 (양조 또는 포트?)을 사용하여 설치 한 것일 가능성이 큽니다. 애플은 아무 것도 만들지 않고, /opt에 아무것도 추가하지 않으며 X11 바이너리 나 라이브러리를 거기에 넣지 않습니다.

기본적으로 타사 설치 프로그램에서 시스템 바이너리를 오버라이드 한 10.6.8 시스템과 이러한 오버라이드를하지 않은 10.9 (.1?) 시스템에서 두 가지 환경을 실행합니다 .

10.6.8 :

, 깨끗한 (즉, 더 X11 포트가 설치되어 있지), 애플 개발자 도구가 나는 현재 실행 해요 10.9.1 및 10.6.8 버전을 설치 기존에 확인, 나는 다음을 참조 :

  • /usr/X11/lib/libpng12.0.dylib (상용 버전 47.0.0, 현재 버전 47.0.0)
  • /usr/X11/lib/libpng.3.dylib (호환성 버전 50.0 .0, 현재 버전 50.0.0)
,363,210

10.9.1 :

  • /usr/X11/lib/libpng12.0.dylib (호환 버전 48.0.0, 현재 버전 48.0.0)
  • /usr/X11/lib/libpng.3 .dylib (호환 버전 51.0.0, 현재 버전 51.0.0)
  • /usr/X11/lib/libpng15.15.dylib (호환 버전 25.0.0, 현재 버전 25.0.0)

들어 철저하게, 나는 10.7과 10.8의 깨끗한 설치를 확인했다. 둘 다 :

  • /usr/X11/lib/libpng12.0.dylib (상용 버전 47.0.0, 현재 버전 47.0.0)
  • /usr/X11/lib/libpng.3.dylib (호환 버전 50.0.0 , 현재 버전 50.0.0)
  • /usr/X11/lib/libpng15.15.dylib (호환성 버전 20.0.0, 현재 버전 20.0.0)
나의 제안은 당신이 그 가능성이 아니라면 ( /usr/X11 아웃 패치, 또는이없는 기계), 대상에서 동일한 재정의를 설치의 가능성을 고려에 수 있습니다 경우 다시 작성하는 것입니다

그 소스에서 완료되었습니다.

+0

당신은 훌륭한 답변을 제공합니다, 내 친구 – trojanfoe

+0

그건 내가 의심하는 것입니다. 포트가 내 시스템을 엉망으로 만들었습니다. 오래된 시스템으로 되돌릴 방법이 있습니까? 전체 재설치없이 libpng/X11을 제공 했습니까? 지금까지 볼 수 있듯이 더 이상 존재하지 않습니다. –

+0

10.6.8의 잘 알려진 설치에서 복사하거나 10.6.8에 대해 비 델타 업데이트를 적용하여 문제가 해결되는지 확인하거나, – gaige

관련 문제