나는 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를 거기에 설치하지 않으면, 작동하지 않을 것입니다. 헤더 파일을 수동으로 복사하지 않아도이 문제를 해결할 수있는 더 좋은 방법이 있습니까?
'libpng'에 링크 만하는 것이 아닌 이유는 무엇입니까? – trojanfoe
@trojanfoe : 바인딩 대상을 실제로 결정하는 matplotlib입니다. 나는 그것을 해킹 할지도 모르지만 어쨌든 그것은 작동해야한다. 그것은 나를 괴롭히는 호환성 버전의 차이입니다. –
'/ opt'에서 무언가를 사용했다면 표준 라이브러리가 아닙니다. 이것은 당신이 구축하고있는'.app' 파일입니까? (그렇다면 필요한 모든 라이브러리를 묶을 수 있습니까?) – trojanfoe