gpt4 book ai didi

c++ - Qt Release DLL错误

转载 作者:行者123 更新时间:2023-11-30 03:50:01 31 4
gpt4 key购买 nike

我在 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编译文件都会出现这个错误信息。

使用 dependency walker 和处理“正确的”QT dll 文件也不能解决问题。

我已经知道:这个错误发生在将错误的 QTCore.dll 复制到他们的项目文件夹的人身上。但是,由于我没有复制任何 .dll 文件,我不知道如何利用这些信息来发挥我的优势。

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

最佳答案

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

1) 添加

CONFIG += static

在你的 .pro 文件中(你做的)并且不要复制任何 Qt dll。

2) 你需要构建静态Qt

https://wiki.qt.io/Building_a_static_Qt_for_Windows_using_MinGW

默认情况下,Qt 是为动态链接准备的,这就是为什么您需要自己构建静态 Qt。

您可能还想看看这个很棒的问答:

Qt static linking and deployment

但它主要处理Qt4。思路是一样的。

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

关于c++ - Qt Release DLL错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32086098/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com