2009-11-22 2 views
4

프레임 워크와 클라이언트 응용 프로그램이라는 두 개의 XCode 프로젝트가 있습니다. 내 응용 프로그램이 내 프레임 워크에 따라 다르며 모든 것이 올바르게 작동합니다. 응용 프로그램이 다시 컴파일 될 때마다 프레임 워크가 다시 컴파일되고 프로젝트 빌드 경로가 올바르게 설정되어 있으면 완전히 괜찮습니다.동적 라이브러리 (.dylib)를 프레임 워크 (.framework)로 복사

이제 타사 dylib 파일을 사용하여 프레임 워크가 시작되었으며 dylib와 연결됩니다. 나는 라이브러리를 프레임 워크의 리소스 디렉토리에 복사하기위한 빌드 단계를 추가했습니다.

dyld :

내가 응용 프로그램을 실행하기 위해 노력하고있어

, 모든 것이 제대로 컴파일 후, 나는이 얻을 도서관이로드되지 : /usr/local/lib/libplplot.9.dylib에서 참조 :/사용자/railsmaniac/프로젝트/연구/미적분은> 근사// 디버그/XNMaths.framework/버전/A/XNMaths 이유 빌드가 : 이미지가

내가 그것을 어떻게 해결할 수

를 찾을 수 없습니다? 클라이언트 응용 프로그램의 리소스에 라이브러리를 추가해도 문제가 해결되지 않습니다. 라이브러리를 필요한 위치에 배치 할 수 있지만 프레임 워크에 보관하는 것을 선호합니다. 가능합니까?

+0

필자는 해당 라이브러리의 바이너리가 부족한 것처럼 보입니다. 바이너리 .dylib을 다운로드 한 후 일부 헤더가 압축되어 패키지의 개발자 블로그에 참조됩니다. 이제는 * libplplot.9 *가 아닌 libplplot이 필요합니다. /usr/local/lib /에 복사하면 PLPlot 패키지로 컴파일 된 다른 dylib 파일이 필요합니다. 필자는 PLPLot 소스에서 프레임 워크를 만들 것이라고 생각합니다. 프레임 워크를 다른 프레임 워크에 쉽게 패키징 할 수 있으며 더 유용 할 것입니다. – Nat

답변

3

응용 프로그램에서 시스템의 특정 경로에서 라이브러리를 찾을 것으로 예상됩니다. OS 10.5 이상을 사용하는 경우 새로운 @rpath 기능을 사용하면 응용 프로그램이 라이브러리에 동적으로 링크 할 수 있습니다.

자세한 내용은 this post을 참조하십시오. 또한이 작업을 수행하는 "오래된"방법을 보여줍니다.

+0

해답을 가져 주셔서 감사합니다. 나는 동적으로 링크하는 등 새로운, 나는 웹 개발자이기 때문에 기본적으로 :)하지만 분명히 개념을 이해합니다. 한 가지 질문 : 응용 프로그램 프로젝트 문제입니까, 아니면 프레임 워크입니까? 이 응용 프로그램을 사용하여 모든 프레임 워크에서이 문제를 해결하고 싶습니다. 그게 가능하니? – Nat

+0

가능해야합니다. 나는 오랫동안 (오랫동안 네이티브 OS X 프레임 워크를 개발하지 못했습니다.) 그래서이 기사에서 다루는 것 이외의 다른 많은 포인터를 제공 할 수는 없습니다 (작동 할 것이고, 나는 몇 년 전에 그것을했다). 오, 당신이 그 포인터에 만족한다면 받아 들여라;) – jkp

+0

나는 나의 상황의 업데이트를 게시했다. 네, 대답은 도움이되었습니다, 다시 한 번 감사드립니다. – Nat