【问题标题】:Qt executable error- dll libraryQt 可执行错误 - dll 库
【发布时间】:2014-04-06 16:17:47
【问题描述】:

从 QtCreator 执行时可以完美运行的 Qt 应用程序,当我尝试从调试文件夹(没有 QtCreator)执行它时不会运行。它要求了很多.dll文件,我一个一个下载,并添加到调试文件夹中。 现在我得到了错误:

The program can't start because libwinpthread-1.dll is missing from your computer.
Try reinstalling the program to fix this problem.

我在 Internet 上的任何地方都找不到 libwinpthread-1.dll。我做错了什么?

可执行文件的路径是:

C:\Qt\Tools\QtCreator\bin\build-SimpleText1_3-Desktop_Qt_5_2_1_MinGW_32bit\Debug

项目文件:

#-------------------------------------------------
#
# Project created by QtCreator 2014-04-04T14:29:48
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = SimpleText1_3
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui
CONFIG += console c++11
QMAKE_CXXFLAGS += -std=c++11

还有main.cpp:

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

【问题讨论】:

  • 请给出具体路径,main.cpp和工程文件。另外,重新阅读 tagwiki。这是Qt,不是QT。你在混合 32 位和 64 位吗?
  • 我不认为我完全理解你的问题。我使用 Qt 创建者 x64。当我下载 dll 文件时,我不得不下载 32bit dll 文件(64bit dll 在执行中产生了更多错误)。
  • 对,所以很可能您将它们混合在一起。 QtCreator 可以是 32 位和 64 位,但不能将二进制文件与 32 位和 64 位 dll 混合并构建。你构建的可执行文件是 32 位的,所有的 dll 也是,对吧?
  • 我不知道如何检查我构建的可执行文件,如果它是 32 位还是 64 位。但是我下载的所有dll文件都是32位的。
  • 你能显示一些dll文件名吗?至于二进制是 32 位还是 64 位,请显示 qmake 行运行,或您的规范配置。您可能正在尝试构建 64 位二进制文​​件。

标签: c++ qt pthreads qt-creator qmake


【解决方案1】:

当您在 Qt Creator 中运行您的应用程序时,一切都很好,但是当您从调试文件夹运行 .exe 文件时,您会收到 dll 丢失错误。这是真的! 首先将 Qt Creator 设置为 Release 模式。您必须将这些 dll 和文件夹复制到 Release 文件夹:

platforms --> Folder
icudt52.dll
icuin52.dll
icuuc52.dll
msvcp110.dll
msvcr110.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll

以上 dll 用于 Visual Studio 编译器,仅适用于 Core 和 GUI 库。

祝你好运。 亚阿里。

【讨论】:

  • 如何将Qt Creator设置为发布模式?
  • 我将 Qt 设置为发布模式,但发布文件夹(调试旁边的一个)即使在我以发布模式构建文件后也是空的。我在哪里可以找到您在回答中提到的那些文件。
  • 我设法以某种方式运行它。所有的 dll 文件已经在 Qt 目录中的某个地方,在我将它们全部复制到发布文件夹后,它就可以工作了。
  • 很高兴听到!祝你好运。
【解决方案2】:

转到以下 Qt 文档链接: https://wiki.qt.io/Deploy_an_Application_on_Windows。 严格按照说明操作。我不必采用蛮力方法。我确实收到了缺少环境变量的警告,但绑定确实有效。 小心发布与调试版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多