14

我在 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

我在这个链接中找到了一些解决方案(一些链接已经失效)。

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

CONFIG += static

静态编译我的项目。

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

谢谢你。

4

1 回答 1

10

Qt 共享库在您测试它的另一台计算机上不存在。所以你需要:

  1. 将共享库复制到您的另一台计算机。或者...
  2. 创建一个静态 Qt 构建以与您的应用程序链接。

仅仅添加到您的 .pro 文件是不够的CONFIG += static,您还需要 Qt 静态库。因此,要执行 #2,您需要获取 Qt 源代码并自己构建它。

此外,Qt 是在 LGPL 下获得许可的,因此在静态链接时需要注意这一点。有些人认为 LGPL 不允许静态链接(除非您 LGPL 您自己的代码),而另一些人则认为它允许(只要您愿意为您的应用程序发布目标代码)。但这是另一回事。

于 2013-04-05T09:15:32.223 回答