【发布时间】:2014-01-29 08:59:20
【问题描述】:
我已经移植了一个现有的 Qt4 应用程序 Qt5 并向这个应用程序添加了一些额外的(简单的)功能。
旧版应用自带
- libgcc_s_dw2_1.dll
- libusb-1.0.dll
- mingwm10.dll
- QtCore4.dll
- QtCored4.dll
- QtGui.dll
现在,我可以通过 QtCreator 运行修改后的应用程序,但在准备部署时会出现问题。我在我的.exe 上使用了dependancy walker,并在我的可执行文件目录中包含了一些DLL。
- icudt51.dll
- icuin51.dll
- icuuc51.dll
- IEShims.dll
- libgcc_s_dw2-1.dll
- libGLESv2.dll
- libstdc++-6.dll
- libusb-1.0.dll
- libwinpthread-1.dll
- mingwm10.dll
- Qt5Core.dll
- Qt5Cored.dll
- Qt5Gui.dll
- Qt5Guid.dll
- Qt5Widgets.dll
- Qt5Widgetsd.dll
- QtCored4.dll
(是的,由于 DLL 的原因,项目现在非常大,但在我的用例中这不是问题。)
最后它没有抱怨缺少 DLL。尝试执行 .exe 时发布的错误消息是:
程序入口点?testBit@QBitArray@@QBE_NH@Z在动态链接库Qt5Core.dll中找不到
我从未尝试在 Qt Creator 之外执行 Qt 应用程序,所以我真的不知道该怎么做。
如果有帮助: 在 Projects-> qmake build config 下:Release -> Effective qmake call I have
qmake.exe D:\Product\test_util.pro -r -spec win32-g++
如果需要更多信息以使任何事情更清楚,请发表评论。
【问题讨论】:
-
您包括 Qt dll 的调试和发布版本。但是,您只能拥有其中之一,具体取决于您的配置。这将减少您的包裹尺寸。
-
@vahancho 哦,这就是
d后缀的含义。谢谢 -
您确定 DLL 版本与正在构建的二进制文件匹配吗?即 Qt 5 和 Qt 5.1 有不同的 dll。
-
@returnthis.lau_ 我使用 Qt 安装中的 DLL,即 Qt5.2
-
原因 #233 讨厌 QT LOL,这是一个无法构建分发应用程序的 ide:D
标签: qt dll deployment