gpt4 book ai didi

qt - 不使用 Qt 运行 .EXE

转载 作者:行者123 更新时间:2023-12-02 10:35:44 25 4
gpt4 key购买 nike

[ Solution ]

我想运行使用 QtSDK 创建的应用程序在没有 Qt 的机器上已安装。

我尝试复制 DLL's来自BIN文件夹到我的项目的发布中,但它不起作用。

我尝试了以下方法:

  • 我全部复制dll's文件夹d:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin
  • 并将其粘贴到我的项目文件夹中:d:\projects\mybrowser\mybrowser-build-Desktop_Qt_5_0_1_MinGW_32bit-Release\release
  • 并将其发送到另一台计算机 without Qt
  • 在计算机中 without Qt ,我安装了vcredist_sp1_x86.exe并尝试运行我的应用程序browsertest.exe

发生以下错误:

microsoft visual c++ runtime library: this application has requested the runtime to terminate it in an unusual way

问:我真正想知道的是:

如何在未安装 Qt 的其他计算机 (Windows) 上运行 Qt 内置的应用程序?

详细信息:

  • Qt5.0.1 32位
  • mingw 4.7 32位
  • QtCreator 2.6.2
  • Windows 7 64 位。
  • 英特尔 i5

文件夹:

  • D:\Qt\Qt5.0.1\5.0.1\mingw47_32
  • D:\Qt\Qt5.0.1\Tools\MinGW

Qt/Mingw:

  • D:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin\qmake.exe
  • d:\Qt\Qt5.0.1\Tools\MinGW\bin\gcc.exe
<小时/>

文件.pro:

QT += webkitwidgets network core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = browsertest
TEMPLATE = app

RC_FILE = browser.rc

SOURCES += main.cpp\
mybrowser.cpp

HEADERS += mybrowser.h

FORMS += mybrowser.ui

如果您错过任何信息,请告诉我。感激不尽

最佳答案

要分发您的应用程序,您需要复制DLL(仅需要DLL)。

  1. 从以下位置复制所需的DLL: <DRIVE>:\Qt\Qt<Version_qt>\<Version_qt>\mingw<Version_mingw>\<DRIVE>:\Qt\Qt<Version_qt>\<Version_qt>\mingw<Version_mingw>\bin\

    例如: C:\Qt\Qt5.2.0\5.2.0\mingw48_32\C:\Qt\Qt5.2.0\5.2.0\mingw48_32\bin

  2. 粘贴您的应用程序的文件夹。

  3. 然后复制 <DRIVE>:\Qt\Qt<Version_qt>\<Version_qt>\mingw<Version_mingw>\plugins 内的文件夹

    例如: C:\Qt\Qt5.2.0\5.2.0\mingw48_32\plugins

  4. 粘贴您的应用程序的文件夹。

Note: In this example (below), it was necessary to copy DLLs from different places and remove the Debug DLLs (used only to compile in Debug).

Note that the debug dlls end with "d.dll", for example: Qt5Core.dll and Qt5Cored.dll or Qt5Concurrent.dll and Qt5Concurrentd.dll, the ending with "d.dll" should not be copied.

结构应如下所示(示例):

  • c:\project\app.exe(您在 Qt 中创建的应用)
  • c:\project\Qt5Core.dll(来自 qt/mingw 文件夹或 qt/mingw/bindll)
  • c:\project\platforms(qt/mingw/plugins 文件夹中的文件夹)
  • c:\project\platforms\qminimal.dll(来自qt/mingw/plugins/platforms文件夹的dll)

仅需要 mingw 的一些 DLL,因此我建议使用 Dependency Walker 2.2

结果应如下所示(并非需要所有 dll,这可能因项目类型而异): app folder

<小时/>

感谢:

  • @MartinBeckett 的+1,向我展示了查找所需 DLL 的程序。

  • +1 @WouterHuysentruit,感谢我指出的应用程序,我发现 mingw\plugins 文件夹的内容应该直接进入应用程序文件夹。

  • @WouterHuysentruit 我认为你的答案是正确的,但你刚才说了,所以我做了一个更简单的解释。不管怎样,谢谢。

关于qt - 不使用 Qt 运行 .EXE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16022967/

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