如何静态构建Qt 5

时间:2013-03-11 14:09:02

标签: c++ linux qt gcc qt5

我在Linux环境中使用基于Qt 5.0.1的Qt Creator 2.6.2。应用程序在我编译的计算机上工作正常,但是当我在另一台计算机上执行它时,我得到的错误如下:

error while loading shared libraries: libQt5WebKitWidgets.so.5: cannot open shared object file: No such file or directory
error while loading shared libraries: libxslt.so.1: cannot open shared object file: No such file or directory

我在link找到了一些解决方案(有些链接已经死了)。

所以我在我的.pro文件中添加了这一行:

CONFIG += static

静态编译我的项目。

我认为我得到的文件会更大,但我的大小和错误相同。

谢谢。

1 个答案:

答案 0 :(得分:9)

在您测试的其他计算机上不存在Qt共享库。所以你需要:

  1. 将共享库复制到其他计算机。或...
  2. 创建静态Qt构建以与您的应用程序链接。
  3. 仅将CONFIG += static添加到.pro文件中是不够的,还需要Qt静态库。所以要做#2你需要获得Qt源代码并自己构建它。

    此外,Qt是根据LGPL许可的,因此在静态链接时您需要注意这一点。有些人认为LGPL不允许静态链接(除非你是LGPL自己的代码)和其他相信它的人(只要你愿意为你的应用程序发布目标代码)。但这是另一场讨论。