• QT5.4 计算器程序 打包&发布,解决dll的最新解决方案


    QT写界面还是很不错,就是打包会比较麻烦,折腾了一天总算是打包完成了。

    QT软件的打包发布一个难点是必备dll文件的识别,现在高版本QT自带了一个windeployqt工具,直接会把需要的dll生成一份,放在软件的目录里面。

    参考官方文档:http://doc.qt.io/qt-5/windows-deployment.html#application-dependencies

    具体使用步骤如下:

    1.添加qt的bin/目录进系统path变量。很简单,在系统属性里设置,添加D:QTQT5.4.1mingw5.4mingw491_32in;(分号不能掉)到系统path环境变量(不会添加环境变量问度娘)

    第二部,在任意目录新建文件夹,把编译完成后的Calc.exe可执行程序拷贝过去。从命令行模式进入该文件夹,执行语句windeployqt Calc.exe. 之后该工具会分析程序依赖性,自动添加必要dll文件至该目录。运行时命令行提示如下:

    D:e>windeployqt Calc.exe
    D:eCalc.exe 32 bit, release executab
    Adding Qt5Svg for qsvgicon.dll
    Direct dependencies: Qt5Core Qt5Gui Qt
    All dependencies   : Qt5Core Qt5Gui Qt
    To be deployed     : Qt5Core Qt5Gui Qt
    Updating icuin53.dll.
    Updating icuuc53.dll.
    Updating icudt53.dll.
    Updating Qt5Core.dll.
    Updating Qt5Gui.dll.
    Updating Qt5Svg.dll.
    Updating Qt5Widgets.dll.
    Creating directory iconengines.
    Updating qsvgicon.dll.
    Creating directory imageformats.
    Updating qdds.dll.
    Updating qgif.dll.
    Updating qicns.dll.
    Updating qico.dll.
    Updating qjp2.dll.
    Updating qjpeg.dll.
    Updating qmng.dll.
    Updating qsvg.dll.
    Updating qtga.dll.
    Updating qtiff.dll.
    Updating qwbmp.dll.
    Updating qwebp.dll.
    Creating directory platforms.
    Updating qwindows.dll.
    Creating qt_ca.qm...
    Creating qt_cs.qm...
    Creating qt_de.qm...
    Creating qt_fi.qm...
    Creating qt_hu.qm...
    Creating qt_it.qm...
    Creating qt_ja.qm...
    Creating qt_ru.qm...
    Creating qt_sk.qm...
    Creating qt_uk.qm...
    
    D:e>

    这样必要的库文件就自动添加完毕.

    2.一般情况下,还是会少一两个.dll 用depends软件检测一下,看看还缺什么?

    找到除了API-MS的包,在D:QTQT5.4.1mingw5.4mingw491_32in目录里面复制到软件的根目录。

    3.前两步下来,dll彻底找完了,现在就该轮到打包工具 EnigmaVirtual Box

    在“Enter Input File Name”一栏指定Qt编译生成的 *.exe 文件,同时在“EnterOutput File Name”一栏会自动生成打包后输出文件的路径和文件名称。(请无视中间的广告!)

    点击左下方的“Add…”按钮,添加所有的依赖链接库文件;然后点击右下方的“FilesOptions”,在弹出的对话框里选中“Enable Files Virtualization”和“CompressFiles”两项;“OK”后返回点击“Process”并等待小伙伴干完该干的活。

    在“Enter Input File Name”一栏指定Qt编译生成的 *.exe 文件,同时在“EnterOutput File Name”一栏会自动生成打包后输出文件的路径和文件名称。(请无视中间的广告!)

    点击左下方的“Add…”按钮,添加所有的依赖链接库文件;然后点击右下方的“FilesOptions”,在弹出的对话框里选中“Enable Files Virtualization”和“CompressFiles”两项;“OK”后返回点击“Process”并等待小伙伴干完该干的活。

    这样你就成功了。


    Qt5.4  主要依赖链接库说明

    1.QT模块库

    1

    2

    3

    4

    Qt5Core.dll      #QT核心库

    Qt5Gui.dll       #QT Gui库

    Qt5Widgets.dll   #QT Widgets库,QT 5中GUI程序基本都需要此dll

    #还有其他程序用到的Qt5XXX.dll

    2.ICU依赖库

    (International Component for Unicode,Unicode工具)

    1

    2

    3

    icudt51.dll     

    icuin51.dll    

    icuuc51.dll   

    3.QT插件库(新增库,路径必须正确)

    1

    2

    3

    4

    5

    6

    # 根据不同的程序,需要不同的插件库

    #例如 QT_DIR/plugins/*/*.dll

    # 需要将 platforms/*.dll,accessible/*.dll的文件结构保留

    # 放在你所编译的程序所在目录

    plugins/platforms/qwindows.dll

    plugins/accessible/qtaccessiblewidgets.dll

    4.EGL依赖库,为OpenGL,OpenGL es提供接口

    1

    2

    libEGL.dll

    libGLESv2.dll

    5.mingw依赖库(msvc编译则无需这些库)

    1

    2

    3

    libgcc_s_dw2-1.dll

    libstdc++-6.dll

    libwinpthread-1.dll

    6.VC运行库(mingw编译则无需这些库)

    1

    2

    msvcr110.dll(对应VS2012)

    msvcp110.dll

    最后发一张程序的效果图,附带上程序和源代码的下载链接:http://pan.baidu.com/s/1dD1y8wh 密码:oa9h

  • 相关阅读:
    iOS uitableView响应事件被拦截
    《数据结构、算法与应用》8.(顺序查找数组中第一个出现指定元素的位置)
    Codeforces 475B Strongly Connected City 强连通裸题
    hdu1501&&poj2192 Zipper(DFS)
    hdu 4031 Attack(树状数组区间更新单点求值&暴力)
    Bash Shell 流程控制 —— select
    Longest Valid Parentheses
    HDU 2955 Robberies
    浅谈 Objective-C Associated Objects
    浅谈 Objective-C Associated Objects
  • 原文地址:https://www.cnblogs.com/Zengineer/p/4614613.html
Copyright © 2020-2023  润新知