【问题标题】:Packing some macports libraries with executable file to create app bundle使用可执行文件打包一些 macports 库以创建应用程序包
【发布时间】:2012-02-17 03:15:31
【问题描述】:

我正在尝试为使用我使用 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 会是更好的选择吗?我正在采取的步骤中有什么遗漏吗?

【问题讨论】:

    标签: macos shared-libraries bundle macports


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      • 2020-02-22
      • 2013-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-30
      相关资源
      最近更新 更多