用一些可执行文件打包一些macports库来创建app bundle

时间:2012-01-23 19:15:23

标签: macos shared-libraries bundle macports

我正在尝试为使用我使用macports安装的某些库的游戏创建应用程序包。我想把依赖项放在bundle中,但是我不知道如何做到这一点。

我已编译游戏并尝试使用install_name_tool来更改使用的路径,以便可执行文件在bundle中搜索,我没有得到任何错误,但路径没有改变。例如。:     install_name_tool -change libSDL-1.2.0.dylib @executable_path /../ Frameworks / libSDL-1.2.0.dylib meandmyshadow

可执行文件是使用CMake生成的Makefile构建的。

XCode会是更好的选择吗?我正在采取的步骤中是否有任何遗漏?

1 个答案:

答案 0 :(得分:1)

回答有关如何使用install_name_tool的具体问题:如果您使用otool -L meandmyshadow查看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