2017-01-23 3 views
0

나는 ioquake3를 기반으로 게임을 만들고 있으며 게임에서 글꼴을 렌더링하기 위해 Freetype을 사용할 수있게했습니다.MacOS에서 ioquake3 : 게임과 함께 번들로 묶기

그러나이 라이브러리는 개발 과정에서 허풍이되어 이제 Freetype이 설치되어 있지 않아서 내 게임 외에 MacOS 컴퓨터에서 게임이 제대로 실행되지 않습니다.

"."에서 "renderer_opengl2_x86_64.dylib"를 찾습니다. 실패합니다. 그러나 ioquake3는 동일한 컴퓨터에서 잘 실행됩니다. 그리고 ioquake3.app의 렌더러 dylibs를 전송하면 Freetype이 기본적으로 활성화되어 있지 않기 때문에 게임이 실행되지만 텍스트 렌더링이 수행되지 않습니다.

제 질문은 어떻게 ioquake3 기반 게임으로 Freetype을 묶을 수 있는지입니다. libfreetype.6.dylib를 [game] .app/Contents/MacOS에 복사하는 것만 큼 간단 할 것 같았지만 그 중 하나는 작동하지 않았습니다. 원래 게임에서는 렌더러 dylib를 복사하지 않았으므로 작동하지 않습니다. 필자는 모든 사용자가 Freetype을 설치하고 링크해야하므로 라이브러리에 내 앱이 번들로 제공 되나요?

답변

0

좋아요, 그래서 렌더러 dylib 파일이 시스템의 하드 코딩 된 디렉토리에서 호출된다는 것을 알았습니다.이 디렉토리는 게임을 컴파일하기 위해 매핑해야하지만 일반 MacOS 컴퓨터에서는 그렇지 않습니다.

는 그래서 내가 한 것은 dylibs가에서 검색 디렉토리를 변경 터미널에서 사용 install_name_tool을했다.

install_name_tool -change /usr/local/lib/libfreetype.6.dylib @executable_path/libfreetype.6.dylib /Applications/{game name}.app/Contents/MacOS/renderer_opengl2_x86_64.dylib 

^그런 다음 OpenGL을 2 dylib에 대해 동일한 물건을 내가 복사 한 libfreetype.6.dylib 파일 내 애플 리케이션의 내용/MacOS 디렉토리에. 그 후 게임은 내 컴퓨터와 Freetype을 설치하지 않은 "기니피그"컴퓨터에서 완벽하게 실행되었습니다.

Freetype 및 ioquake3에 문제가있는 다른 사용자에게 도움이되기를 바랍니다.

관련 문제