Qt发布DLL错误

时间:2015-08-19 03:33:51

标签: c++ qt dll

我在Qt Creator中有一个项目,我正在尝试编译静态版本。为此,我在.pro文件中的“CONFIG”选项中添加了“static”。

重建所有文件后,我得到一个名为“release”的文件夹,其中包含可执行文件和其他一些文件。尝试执行生成的文件时,出现错误,如下所示:

“程序入口点__cxa_throw_bad_array_new_length无法位于动态链接库C:\ Qt \ 5.5 \ mingw492_32 \ bin \ QtCore.dll”

无论我使用mingw 5.5.0还是5.4.2编译文件,都会出现此错误消息。

使用依赖性walker并处理“正确的”QT dll文件也无法解决问题。

我已经知道:将错误的QTCore.dll复制到项目文件夹的人会发生此错误。但是,由于我没有复制任何.dll文件,我不知道如何使用这些信息对我有利。

总之,我的问题是:如何阻止此错误发生?此外,是否有更好的静态编译qt应用程序的方法?

1 个答案:

答案 0 :(得分:1)

要构建应用程序的静态版本,您基本上需要两件事:

1)添加

CONFIG += static
<。>在你的.pro文件中(你做过)并且不要复制任何Qt dll。

2)你需要构建静态Qt

https://wiki.qt.io/Building_a_static_Qt_for_Windows_using_MinGW

默认情况下,Qt已安装为动态链接,这就是你需要自己构建静态Qt的原因。

你可能还想看看这个伟大的Q&amp; A:

Qt static linking and deployment

但它主要涉及Qt4。想法是一样的。

在构建静态Qt后,您需要重建应用程序。并且不要复制任何Qt dll。