SFML 未静态链接到 openal32(静态链接到所有其他依赖项)

2024-01-25

我使用 CMake for MinGW 编译了 SFML。运行“mingw32-make install”后,一切都已构建并安装,没有错误。但运行示例时 - pong.exe、sound.exe、sound-capture.exe 和 voip.exe 均依赖于openal32.dll.

我指定SFML_USE_STATIC_LIBS = true配置 CMake 时,示例可执行文件的所有其他依赖项仅依赖于本机 Windows dll。

谁能解释为什么它动态链接到 openal32 (但没有其他)?

Edit:我刚刚遇到这个线程http://en.sfml-dev.org/forums/index.php?topic=262.0 http://en.sfml-dev.org/forums/index.php?topic=262.0这正在讨论完全相同的问题。我本以为(因为这是 2008 年的事情)现在应该已经实施了。或者说现在还是同样的情况吗?

Edit 2:此处的回复http://en.sfml-dev.org/forums/index.php?topic=18119.0 http://en.sfml-dev.org/forums/index.php?topic=18119.0表示由于许可证的原因,OpenAL 必须动态链接。任何人都可以确认许可证是否允许使用可执行文件分发 openal32.dll 吗?


我不是律师(昨晚我也没有入住受欢迎的连锁酒店)。

The 他们正在使用的 OpenAL 实现 http://openal-soft.org/已获得许可GNU 库通用公共许可证 (LGPL),版本 2 http://repo.or.cz/w/openal-soft.git/blob/HEAD:/COPYING。 LGPL v2 要求:

如果将程序与库链接,则必须向接收者提供完整的目标文件,以便他们在对库进行更改并重新编译后可以将程序重新与库链接。您必须向他们展示这些条款,以便他们了解自己的权利。

允许用户将闭源游戏与修改后的 OpenAL 库重新链接的最简单方法是使该游戏链接动态地openal32.dll。这样,他们就可以简单地更换openal32.dll修改后的文件,并将其放在游戏可执行文件旁边。

对于这部分许可:

您必须向他们展示这些条款,以便他们了解自己的权利。

只需告知您的用户您的游戏使用 OpenAL,并以某种方式授予他们访问 LGPL v2 文本正文的权限。

您可以分发openal32.dll在您的游戏中,在以下条件下:

例如,如果您分发该库的副本,是否免费 或者付费后,您必须向收件人授予我们赋予的所有权利 你。您必须确保他们也收到或可以获得来源 代码。

只需告知您的用户您的游戏使用 OpenAL,并提供他们可以下载源代码的链接即可实现这一目标。

要告知您的用户他们对 OpenAL 的权利,您可以在游戏本身的“关于”页面或分发的游戏手册的前言/附录中进行操作。例如:

该游戏使用以下开源软件:

  • OpenAL 软件:http://openal-soft.org/ http://openal-soft.org/

当您告知 OpenAL 用户时,您还可以自愿注明您的游戏使用的其他开源库(例如 SFML)的归属。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SFML 未静态链接到 openal32(静态链接到所有其他依赖项) 的相关文章

  • C++ 维护子类对象的混合集合

    如果我在这里错过了一个相当基本的概念 我很抱歉 但我正在尝试弄清楚如何维护多个类类型的集合 所有类类型都派生自同一个父类 并且在检索它们时仍然可以访问它们的特定于子类的方法从集合中 作为上下文 我有一个基类 BaseClass 和许多类 例
  • 如何从 C# 中的 dataTable.Select( ) 查询中删除单引号?

    所以我有一个经销商名称列表 我正在我的数据表中搜索它们 问题是 一些傻瓜必须被命名为 Young s 这会导致错误 drs dtDealers Select DealerName dealerName 所以我尝试替换字符串 尽管它对我不起作
  • 计算 XML 中特定 XML 节点的数量

    请参阅此 XML
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • 使用 LINQ to SQL 时避免连接超时的最佳实践

    我需要知道在 net 应用程序中使用 LINQ to SQL 时避免连接超时的最佳实践 特别是在返回时IQueryable
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 启动时的 Excel 加载项

    我正在使用 Visual C 创建 Microsoft Excel 的加载项 当我第一次创建解决方案时 它包含一个名为 ThisAddIn Startup 的函数 我在这个函数中添加了以下代码 private void ThisAddIn
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • 在视口中查找 WPF 控件

    Updated 这可能是一个简单或复杂的问题 但在 wpf 中 我有一个列表框 我用一个填充数据模板从列表中 有没有办法找出特定的数据模板项位于视口中 即我已滚动到其位置并且可以查看 目前我连接到了 listbox ScrollChange
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体
  • 使用 omp_set_num_threads() 将线程数设置为 2,但 omp_get_num_threads() 返回 1

    我有以下使用 OpenMP 的 C C 代码 int nProcessors omp get max threads if argv 4 NULL printf argv 4 s n argv 4 nProcessors atoi argv
  • 我可以在“字节数”设置为零的情况下调用 memcpy() 和 memmove() 吗?

    当我实际上没有什么可以移动 复制的时候 我是否需要处理这些情况memmove memcpy 作为边缘情况 int numberOfBytes if numberOfBytes 0 memmove dest source numberOfBy
  • 灵气序列解析问题

    我在使用 Spirit Qi 2 4 编写解析器时遇到一些问题 我有一系列键值对以以下格式解析
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str

随机推荐