使用Qwt部署QT项目时出错

时间:2015-07-30 09:39:11

标签: c++ qt deployment qt5 qwt

我将我的QT项目部署到Windows机器上,一切正常。 昨天我将Qwt库添加到我的项目中,当我部署它时,可执行文件不会开始给出这个错误(在QtCreator上一切正常)

  

程序入口点?staticMetaObject @ QGraphicsEffect @@ 2UQMetaObject @@ B无法找到动态链接库Qt5Widgets.dll

我想我已经包含了所有需要的库。

我试图使用windeployqt

我已经

  

DEFINES + = QWT_DLL

在.pro文件的顶部,显示为here 但它仍然给我这个错误。 也许我想念一些依赖的dll。 你对如何解决这个问题有任何想法吗?

1 个答案:

答案 0 :(得分:0)

我有同样的问题。 我无法理解依赖walker,因为即使是工作的应用程序也显示缺少dll。

我在我的程序中使用了qwt,并在64位Windows 10上使用MSVC2013 32位在Qt 5.5中编译。 将'Qt'文件夹名称更改为'QtHidden'后,作为sugested here,我试图让应用程序与同一个文件夹中的所有dll一起运行,并且得到了一个像你这样的qwt的奇怪错误,尽管我有添加了qwt.dll。

为了让它正常工作,我做了以下工作:

  1. QtHidden / 5.5 / mingw492_32 / bin 中的所有dll复制到我的部署文件夹
  2. 我复制了 QtHidden / 5.5 / mingw492_32 / plugins
  3. 中的所有文件夹
  4. 复制 QtHidden / 5.5 / mingw492_32 / qml

    中的所有文件夹

    //非常标准,直到现在

  5. 添加了qwt.dll

    //现在是技巧

  6. 执行步骤1,2,3但对于文件夹 QtHidden / 5.5 / msvc2013 ,覆盖之前从 / mingw492_32 添加的所有dll和文件夹。
  7. 所以,我认为正在发生的是需要一些来自mingw的dll,比如libgcc_s_dw2-1.dll和libstdc ++ - 6.dll,但所有其他dll需要来自MSVC2013文件夹才能使qwt工作,这是使用的编译器。

    在添加MSVCP120.dll和MSVCR120.dll后,我设法在Windows Xp 32位中运行它。仍然需要这些额外的,因为MSVC2013没有安装在Windows XP计算机中。

    在Windows 10中使用所有资源编译并在Windows XP上运行。我称之为成功。

    希望它可以帮助别人。