SFML不静态链接到openal32(静态链接到所有其他依赖项) [英] SFML not linking statically to openal32 (links statically to all other dependencies)

查看:148
本文介绍了SFML不静态链接到openal32(静态链接到所有其他依赖项)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用CMake for MinGW编译了SFML。运行 mingw32-make install后,所有内容均已构建并安装成功。但是在运行示例时-pong.exe,sound.exe,sound-capture.exe和voip.exe都取决于 openal32.dll

I compiled SFML using CMake for MinGW. After running "mingw32-make install" everything is built and installed with no errors. But when running the examples - pong.exe, sound.exe, sound-capture.exe and voip.exe all depend upon openal32.dll.

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

I specified SFML_USE_STATIC_LIBS = true when configuring CMake and all other dependencies of the example executables are only upon native windows dlls.

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

Can anyone explain why it has dynamically linked to openal32 (but nothing else)?

编辑:刚遇到此线程 http://en.sfml-dev.org/ forums / index.php?topic = 262.0 正在讨论完全相同的问题。我本以为(自2008年以来)这将在现在实施。还是仍然处于相同的情况?

I just came across this thread http://en.sfml-dev.org/forums/index.php?topic=262.0 which is discussing exactly the same problem. I would've thought (since this is from 2008) that this would have been implemented by now. Or is it still in the same situation?

编辑2:此处的响应 http://en.sfml-dev.org/forums/index.php?topic=18119.0 表示OpenAL必须由于许可证而被动态链接。谁能确认许可证是否允许使用可执行文件分发openal32.dll?

Edit 2: The responses here http://en.sfml-dev.org/forums/index.php?topic=18119.0 would indicate that OpenAL must be linked dynamically due to the license. Can anyone confirm whether or not the license allows distribution of openal32.dll with the executable?

推荐答案

我不是律师(并且

他们正在使用的> OpenAL实施下获得许可GNU库通用公共许可证(LGPL),版本2 。 LGPL v2要求:

The OpenAL implementation they are using is licensed under the GNU Library General Public License (LGPL), version 2. LGPL v2 requires that:


如果将程序与库链接,则必须向收件人提供完整的目标文件,以便收件人可以重新链接在对库进行更改并重新编译后,将它们与库一起使用。并且您必须向他们显示这些条款,以便他们知道他们的权利。

If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights.

允许用户使用以下方式重新链接封闭源游戏的最简单方法:一个经过修改的OpenAL库,是通过 openal32.dll 动态地使游戏链接。这样,他们可以简单地将 openal32.dll 换成修改后的文件,然后将其放在游戏可执行文件旁边。

The easiest way to allow users to relink a closed-source game with a modified OpenAL library, is to make that game link dynamically with the openal32.dll. That way, they can simply swap out the openal32.dll with a modified one, and place it beside your game executable.

关于许可的这一部分:


您必须向他们显示这些条款,以便他们知道其权利。

And you must show them these terms so they know their rights.

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

Simply inform your users that your game uses OpenAL, and somehow give them access to the body of the LGPL v2 text.

在以下情况下,您可以随游戏一起分发 openal32.dll

You may distribute the openal32.dll with your game, under these conditions:


例如,如果您分发图书馆的副本,无论是免费的
还是要收费,都必须授予接收者我们授予
的所有权利。您还必须确保他们也可以接收或获取源
代码。

For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code.

这可以通过简单地实现通知您的用户您的游戏使用OpenAL,并提供指向其下载源代码的链接。

That can be met by simply informing your users that your game uses OpenAL, and providing a link to where they can download the source code.

要告知您的用户有关OpenAL的权利,您可以可以在游戏本身的关于页面中找到,也可以在分发的游戏手册的序言/附录中找到。例如:

To inform your users of their rights regarding OpenAL, you could do it in an "About" page within the game iteself, or in an preface/appendix of the distributed game manual. For example:


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

This game uses the following open-source software:

  • OpenAL Soft: http://openal-soft.org/

在通知用户OpenAL的同时,您也可以自愿将其归因于其他开源游戏使用的库,例如SFML。

And while you're informing your users of OpenAL, you could also volunteer to give attribution to other open-source libraries that your game uses, such as SFML.

这篇关于SFML不静态链接到openal32(静态链接到所有其他依赖项)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆