【问题标题】:ioquake3 on MacOS: Bundling Freetype With GameMacOS 上的 ioquake3:将 Freetype 与游戏捆绑在一起
【发布时间】:2017-01-23 14:49:06
【问题描述】:

我正在制作一个基于 ioquake3 的游戏,并且我启用了 Freetype 用于在游戏中渲染字体。

但是,在整个开发过程中,那个库一直让我很头疼,现在游戏无法在我自己的 MacOS 计算机上正常运行,因为它们没有安装 Freetype。

它会在“.”中寻找“renderer_opengl2_x86_64.dylib”。并失败。然而 ioquake3 在同一台计算机上运行良好。如果我传输 ioquake3.app 的渲染器 dylib,游戏会运行但没有文本渲染,因为默认情况下未启用 Freetype。

所以我的问题是如何将 Freetype 与基于 ioquake3 的游戏捆绑在一起。我认为这就像将 libfreetype.6.dylib 复制到 [game].app/Contents/MacOS 一样简单,但这也不起作用。原始游戏不使用它,因此复制渲染器 dylib 不起作用。我不希望每个用户都必须安装 Freetype 并链接它以及所有这些,那么如何将库与我的应用程序捆绑在一起?

【问题讨论】:

    标签: c macos freetype freetype2


    【解决方案1】:

    好的,所以我发现渲染器 dylib 文件正在调用系统中的一个硬编码目录,我必须自己映射一个目录才能让游戏编译,但不是在普通的 MacOS 计算机上。

    所以我所做的是在终端中使用 install_name_tool 来更改 dylib 搜索的目录。

    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 文件复制到我的应用程序的 Contents/MacOS 目录中。之后,游戏在我的电脑和我使用的没有安装 Freetype 的“豚鼠”电脑上完美运行。

    我希望这可以帮助其他遇到 Freetype 和 ioquake3 问题的人!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-05
      • 2014-01-26
      • 2023-03-27
      • 2019-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多