不使用Qt运行.EXE

Gui*_*nto 8 compiler-construction qt

[ 解决方案 ]

我想QtSDK在未Qt安装的计算机上运行我创建的应用程序.

我试图DLL'sBIN文件夹中的文件复制到我的项目版本,但它没有用.

我尝试了以下方法:

  • 我复制所有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 ++运行时库:此应用程序已请求运行时以不寻常的方式终止它

问:我真正想知道的是:

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

细节:

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

文件夹:

  • d:\ Qt的\ Qt5.0.1\5.0.1\mingw47_32
  • d:\ Qt的\ Qt5.0.1 \工具\ MinGW的

QT/MinGW的:

  • d:\ Qt的\ Qt5.0.1\5.0.1\mingw47_32\BIN\qmake.exe
  • d:\ Qt的\ Qt5.0.1 \工具\ 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
Run Code Online (Sandbox Code Playgroud)

如果您遗漏了任何信息,请告诉我.感激

Gui*_*nto 12

要分发您的应用程序,您需要复制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. 粘贴应用程序的文件夹.

注意:在此示例(下面)中,有必要从不同位置复制DLL并删除调试DLL(仅用于在Debug中编译).

请注意,debug dlls以"d.dll"结尾,例如:Qt5Core.dllQt5Cored.dllQt5Concurrent.dllQt5Concurrentd.dll,不应复制以"d.dll"结尾.

结构应该看起来像这样(例子):

  • c:\ project\app.exe(您在Qt中创建的应用)
  • c:\ project\Qt5Core.dll(来自qt/mingw文件夹或qt/mingw/bin的dll)
  • C:\项目\平台(文件夹QT/MinGW的/插件文件夹)
  • c:\ project\platforms\qminimal.dll(来自qt/mingw/plugins/platforms文件夹的dll)

只有一些DLL文件MinGW的将是必要的,所以我建议使用的Dependency Walker 2.2

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


谢谢:

  • 为@MartinBeckett +1,向我展示了找到所需DLL的程序.

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

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

  • 感谢您成为我发现的第一个搜索结果,清楚地指明了DLL所需的来源! (2认同)