【问题标题】:Installing SDL 2 with Macports; Is X11 a dependency?使用 Macports 安装 SDL 2; X11 是依赖项吗?
【发布时间】:2023-03-30 06:42:01
【问题描述】:

我正在通过 macports 在 Mac OSX 10.9 上安装 SDL 2,作为参考,我一直在关注官方文档以及我能找到的任何 sdl 特定信息。

https://guide.macports.org/ 直截了当:

https://guide.macports.org/#using.variants.invoking

我看到 sdl2lib 可用...

libsdl2 has the variants:
universal: Build for multiple architectures
x11: Enable X11 support

但尽管浏览了上述链接的页面并搜索了“SDL with X11”的文档,但我似乎无法找到有关我是否需要 X11(和/或通用又名 powerpc) 支持。我不想安装 SDL 只是为了发现某些东西损坏或丢失。 再说一次,当 Mac OSX 10.1 是新版本时,默认启用 X11 存在一些问题: https://forums.libsdl.org/viewtopic.php?t=2871&sid=52ca72a72c285196dd25fd8619715ae9

(这是另一个问题:我发现的大部分信息都适用于过时的操作系统。)

显然,除非您使用 X11,否则 SDL 在某一时刻不是线程安全的,但是当 SDL 版本 1 是主要版本时,有人提到了这一点: http://forum.freegamedev.net/viewtopic.php?f=3&t=1078

我打算如何继续(通常选择哪些标志,如果有的话?)

port install libsdl2 <???>

对于后续安装步骤的任何帮助和后续警告,我将不胜感激。 提前谢谢你。

【问题讨论】:

  • port info libsdl2 给出了变体universalx11。您不需要 X11 来安装 OS X libsdl2 - 它将使用 OS X / Darwin 的东西来处理 GL、鼠标/键盘事件、音频等,这绝对是你想要的。事实上port deps libsdl2 报告没有依赖关系(至少对于我的系统)。你不应该需要任何额外的标志。如果 MacPorts 找到了 x86-64 构建版本,它将安装它。否则,它将从源代码库自动构建。

标签: macos x11 sdl-2 macports


【解决方案1】:

大多数人已经将 Homebrew 作为他们的软件包系统,但 Macports 应该可以正常工作。

通用并不一定意味着 PowerPC。事实上,几乎没有人需要它了。通用意味着一个胖二进制文件,它定义的架构是在你的 Macports 配置中设置的。

SDL2 在 Quartz 下应该可以正常工作,不需要 X11 - 因为您需要安装 XQuartz,这也会使部署变得烦人和困难。

如果您遗漏了什么,也不要害怕使用其他选项重新安装 SDL2,它应该不会花很长时间。

TL;DR 只需安装它而不需要任何额外的标志,除非你发现你需要一些特别的东西。

【讨论】:

  • 啊,我会使用 Brew,但即使是 SDL 官方网站也只提到了 macports。我看到 brew search 列出了库。我应该安装主库,还是需要其他库?我在哪里可以找到让一切运行之后的说明? (我需要移动任何文件或配置任何设置吗?)这个人似乎有很多问题:stackoverflow.com/questions/18425812/add-sdl-to-my-path 所以同样的问题可能存在也可能不存在。你有什么建议?答案在没有自制软件的情况下编译所有内容,我宁愿使用它。 @Florian Zwoch
  • 看你需要什么。您可以使用基本的 sdl2 库走得很远。其他的是来自 sdl2 本身的插件包。如果您需要它们完全取决于您要完成的工作。 Macports 和 Brew 应该开箱即用。要创建编译命令,您可以使用sdl-config,一旦安装了 sdl,该命令也应该可用。只需信任软件包管理器即可进行安装。人们在 90% 的时间内为您提供所需的一切,他们做得很好。
  • 好的,我正在尝试使用自制软件安装。如何将编译指向已安装的文件,这些文件显然在这里:“./configure --prefix=/usr/local/Cellar/sdl2/2.0.5” 它是一个特定的标志吗?
  • 别为此烦恼。对于一个简单的程序,尝试类似“gcc `sdl-config --cflags --libs` test.co test”。 sdl-config 找出事物的位置并创建必要的标志。你也可以单独在命令行上运行这个sdl-config,这样你就可以看到它确实如此。
  • 你确定这是正确的指令吗? gcc 'sdl2-config -g -Wall -Wextra' hello.c -o hello 不起作用。 “clang:错误:没有这样的文件或目录:'sdl2-config -g -Wall -Wextra'”
猜你喜欢
  • 2011-06-12
  • 1970-01-01
  • 2016-02-17
  • 2023-04-03
  • 1970-01-01
  • 2015-12-28
  • 2019-04-29
  • 2022-01-15
  • 2017-07-10
相关资源
最近更新 更多