如何判断Qt应用程序如何链接到Qt库?

时间:2015-06-23 22:01:00

标签: qt

我正在编写Qt应用程序。

我的Qt许可证是LGPL,所以我试图弄清楚应用程序是否静态链接到Qt库。

有没有办法通过查看qmake生成的.pro文件或Makefile来判断?

我使用TI DVSDK 4.0.0.3附带的Qt 4.6.3

1 个答案:

答案 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!