我正在编写Qt应用程序。
我的Qt许可证是LGPL,所以我试图弄清楚应用程序是否静态链接到Qt库。
有没有办法通过查看qmake生成的.pro
文件或Makefile来判断?
我使用TI DVSDK 4.0.0.3附带的Qt 4.6.3
答案 0 :(得分:2)
不,通过查看.pro文件是不可能的,因为无论Qt构建如何编译,.pro文件都保持不变。毕竟,这不是你的.pro文件。
您可以在Makefile中查看目标链接命令,并查看目标是否与.a文件或.so文件链接。但即便如此,这也是不必要的转移。
只需use ldd
to show whether your executable is dynamically linked with Qt。
您还可以查看您正在使用的Qt套件的配置选项。
最后,LGPL 与静态链接不兼容。 LGPL要求的是,您分发代码的人可以将您的封闭源代码重新链接到LGPL库。对于动态链接,他们只需要重新构建与您提供的完全相同的Qt 配置,并交换.so / .dll文件。对于静态链接,他们需要将您关闭的源对象文件与他们自己根据您提供的源构建的Qt副本重新链接。提供此类目标文件的最简单方法是将项目链接到静态库。然后可以将该库与Qt静态库链接以生成最终的可执行文件。您需要根据要求将项目的闭源部分作为静态库提供。 IANAL!