在 C++ 中使用 LZMA SDK
我可以在我的应用程序中使用 LZMA SDK 而不使用任何 dll 库(例如 7z.dll 或 7za.dll),以便我的应用程序的可执行文件不应该有任何依赖项吗?
如果不可能,我在哪里可以下载 7z.dll/7za.dll?我从 7-zip.org 下载了 LZMA。
谢谢
Can i use LZMA SDK in my application without using any dll libraries such as 7z.dll or 7za.dll so that my application's executable file should not have any dependencies?
If it is impossible where can i download 7z.dll/7za.dll? I downloaded LZMA from7-zip.org.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是的,您可以在应用程序中静态包含/链接 LZMA SDK。事实上,SDK 包含一个名为 lzma.exe 的预构建可执行文件,没有外部 LZMA 依赖项。
在许可方面,虽然 7-Zip 是在 GNU LGPL 下分发的,但 LZMA SDK 是公共领域。允许不受限制的复制和使用,尽管在应得的信用处给予信用是常见的礼貌。
Yes, you can statically include/link the LZMA SDK within your application. In fact the SDK includes a pre-built executable called lzma.exe with no external LZMA dependencies.
In regards to licensing, while 7-Zip is distributed under the GNU LGPL, the LZMA SDK is public domain. Allowing for unrestricted reproduction and usage, although it is common courtesy to give credit where credit is due.
我相信你不能因为 7zip LGPL 许可证。您可以使用 LGPL 部分关闭源代码,但您必须提供升级 LGPL 部分的能力,通常将其用作单独的 DLL。
您可以从源代码构建这些 DLL
I believe you cannot because of 7zip LGPL license. You can have your source closed using LGPL parts but you have to provide an ability to upgrade LGPL part, usually using it as separate DLL.
You can build these DLLs from sources
您可以通过将库静态链接到可执行文件中来完成此操作,但根据其许可证,如果您这样做,您的代码也必须是开源的。
You can do it by static linking the lib into your executable, but according to its license, your code will have to be open source as well if you do it.