2017-09-30 22 views
0

저는 libav * 및 ImageMagick C 라이브러리를 모두 사용하지만 실제로 앱을 배포하는 데 문제가있는 Cocoa 앱을 개발했습니다. 그래서 같이 엑스 코드의 다양한 정적 라이브러리에 연결 한 :Xcode Cocoa app libav * 및 MagickWand 정적 라이브러리 문제

Xcode linking with libraries

응용 프로그램은 구축하고 내 컴퓨터에 완벽하게 정상적으로 실행됩니다. 이제 다른 컴퓨터에서 실행하려고합니다. 빌드를 보관하고 Xcode의 macOS 앱으로 내 보내면 .app 아카이브가 있습니다. 내가 다른 맥에서 실행하려고 할 때 지금, 나는 다음과 같은 오류가 발생합니다 :

enter image description here

내가 빌드 된 바이너리에 otool -L binary_name을 실행하면, 내가 포함 된 모든 하나 하나에 대한 .dylib를 얻을. 파일. 정적 라이브러리의 요점은 메인 바이너리에 내장되어있어 동적 연결을 할 필요가 없다는 것입니다. 왜 아직도 dylib를로드하려고합니까?

답변

0

나는이 문제를 해결할 수 있었고 여기에 나열된 기술 노트가 있다고 생각합니다 : Using static versions of existing dynamic libraries. 내가 사용하는 종속성이 homebrew를 통해 설치 되었기 때문에 각 종속성의 lib 폴더에는 .a 및 .dylib 파일이 모두 있고 Xcode는 dylib를 사용하여 연결했습니다. 이 문제를 해결하기 위해 필요한 모든 .a 파일을 별도의 폴더에 복사하고 Xcode의 Library Search Paths을 새 폴더를 가리 키도록 조정했습니다. 이제 앱이 정적 라이브러리를 빌드하고 링크해야합니다.