Упаковка некоторых библиотек macports с исполняемым файлом для создания пакета приложения - PullRequest
0 голосов
/ 23 января 2012

Я пытаюсь создать пакет приложений для игры, которая использует некоторые библиотеки, которые я установил с помощью macports. Я хотел бы поместить зависимости внутри пакета, но затрудняюсь понять, как это сделать.

Я скомпилировал игру и попытался использовать install_name_tool, чтобы изменить используемый путь, чтобы исполняемый файл выполнял поиск внутри пакета, я не получаю ошибки, но путь не меняется. Например.: install_name_tool -change libSDL-1.2.0.dylib @executable_path /../ Frameworks / libSDL-1.2.0.dylib meandmyshadow

Исполняемый файл был создан с использованием созданного CMake Makefile.

Будет ли XCode лучшим вариантом? Что-то мне не хватает в шагах, которые я делаю?

1 Ответ

1 голос
/ 29 января 2012

Чтобы ответить на ваш конкретный вопрос о том, как использовать install_name_tool: если вы посмотрите на связку библиотек meandmyshadow с помощью otool -L meandmyshadow, это, вероятно, будет выглядеть примерно так:

meandmyshadow:
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11)
    /opt/local/lib/libSDL-1.2.0.dylib (compatibility version 12.0.0, current version 12.3.0)
    ...

Когда вы используетеinstall_name_tool Чтобы изменить ссылку в программе, вам необходимо использовать полную ссылку.Вы указали, что хотите изменить ссылку libSDL-1.2.0.dylib, но вам необходимо указать абсолютный путь, например /opt/local/lib/libSDL-1.2.0.dylib:

install_name_tool -change /opt/local/lib/libSDL-1.2.0.dylib @executable_path/../Frameworks/libSDL-1.2.0.dylib meandmyshadow

Что касается более крупного вопроса о том, как включить библиотеки в комплект приложения,вы можете сделать это вручную, как вы делали выше с install_name_tool, или попробуйте dylibbundler , который сделает это за вас автоматически.Вы можете установить его с помощью MacPorts: sudo port install dylibbundler.

...