【发布时间】:2016-03-27 00:08:08
【问题描述】:
我一直在阅读这个链接:https://wiki.qt.io/Licensing-talk-about-mobile-platforms,在那个页面上,它说:
Qt for Android / Necessitas
由于 Qt for Android 使用的是 Qt 的 LGPL 版本,因此非常完美 可能(并且也推荐和支持)动态链接 创建应用程序时的 Qt 库 - 应用程序没有问题 使用 Qt for Android 的开发人员。该应用程序开发人员可以开发封闭 源代码并发布应用程序 - 不用担心。
只有静态链接 Qt 库才会有问题 使用闭源应用程序。
所以在 Qt Creator 中,在 Build 部分中有一个名为 Qt Deployment 的部分,其中包含三个选项:
- 使用 Ministro Service 安装 Qt
- 在 APK 中捆绑 Qt 库
- 将 Qt 库部署到临时目录
如果我选择,在 APK 中捆绑 Qt 库,仍然被视为动态链接还是会被视为静态链接(尽管从技术上讲它是动态的) ?据我所知,它是动态的,因为在 APK 文件中,我可以看到 Qt 库。唯一的区别是它们的位置。
在文件夹 /lib/armeabi-v7a/ 中有:libQt5Core.so、libQt5Gui.so、libQt5Widgets.so 等,所以这些库在那里,所以它们不是静态链接而是与最终用户链接,APK 就像一个EXE,它不需要下载外部库来运行 APK(即使从技术上讲,APK 需要 Qt 库,而 Qt 库恰好位于 APK 本身内)——这就是我问的原因。
所以要非常清楚和直接,选择“在 APK 中捆绑 Qt 库”选项是否被视为动态链接?
谢谢
【问题讨论】:
-
别买那个都市传说——在 LGPL 下静态链接到 Qt 是完全合法的,你不需要打开你的源代码,只需提供一个指向你的目标文件的链接来满足许可证重新链接可能性的要求。
-
感谢您的回复。我很感激。