首页 文章

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

提问于
浏览
0

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

我已编译游戏并尝试使用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

    要回答有关如何使用 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 .

相关问题