• windows上的Qt 5的依赖部署打包


    通常我们编译Qt程序的时候最终会生成exe或dll,这些可执行文件都会有Qt模块的依赖,如果项目一旦庞大,就不是很好看出缺了什么模块,导致安装包安装到其他绿色干净的windows机器上会提示缺少XXXQt.等之类的依赖,

    以前项目不大的时候,我通常会用windows上一个叫depends的工具来检查可执行文件的依赖,但是项目依赖依赖得多,这个工具却不能完整找出一些跨平台的依赖,比如Qt在platforms目录下提供的各种dll组件,如果缺了它们,

    那么在其他绿色干净的windows会报错,程序不能正常启动,而这些依赖depends是检测不出来的。所以需要用Qt官方提供的依赖部署工具,这个工具叫:windeployqt.exe

    以下就是该工具的用法,只要使用它的命令行,它就可以分析依赖,把相应的依赖拷贝的指定目录下,然后开发人员就可以用相关的打包工具(NSIS等)打包那个目录了

    windeployqt.exe --help
    Usage: windeployqt.exe [options] [files]
    Qt Deploy Tool 5.8.0

    The simplest way to use windeployqt is to add the bin directory of your Qt
    installation (e.g. <QT_DIRin>) to the PATH variable and then run:
      windeployqt <path-to-app-binary>
    If ICU, ANGLE, etc. are not in the bin directory, they need to be in the PATH
    variable. If your application uses Qt Quick, run:
      windeployqt --qmldir <path-to-app-qml-files> <path-to-app-binary>

    Options:
      -?, -h, --help            Displays this help.
      -v, --version             Displays version information.
      --dir <directory>         Use directory instead of binary directory.
      --libdir <path>           Copy libraries to path.
      --plugindir <path>        Copy plugins to path.
      --debug                   Assume debug binaries.
      --release                 Assume release binaries.
      --pdb                     Deploy .pdb files (MSVC).
      --force                   Force updating files.
      --dry-run                 Simulation mode. Behave normally, but do not
                                copy/update any files.
      --no-plugins              Skip plugin deployment.
      --no-libraries            Skip library deployment.
      --qmldir <directory>      Scan for QML-imports starting from directory.
      --no-quick-import         Skip deployment of Qt Quick imports.
      --no-translations         Skip deployment of translations.
      --no-system-d3d-compiler  Skip deployment of the system D3D compiler.
      --compiler-runtime        Deploy compiler runtime (Desktop only).
      --no-compiler-runtime     Do not deploy compiler runtime (Desktop only).
      --webkit2                 Deployment of WebKit2 (web process).
      --no-webkit2              Skip deployment of WebKit2.
      --json                    Print to stdout in JSON format.
      --angle                   Force deployment of ANGLE.
      --no-angle                Disable deployment of ANGLE.
      --no-opengl-sw            Do not deploy the software rasterizer library.
      --list <option>           Print only the names of the files copied.
                                Available options:
                                 source:   absolute path of the source files
                                 target:   absolute path of the target files
                                 relative: paths of the target files, relative
                                           to the target directory
                                 mapping:  outputs the source and the relative
                                           target, suitable for use within an
                                           Appx mapping file
      --verbose <level>         Verbose level.

    Qt libraries can be added by passing their name (-xml) or removed by passing
    the name prepended by --no- (--no-xml). Available libraries:
    bluetooth clucene concurrent core declarative designer designercomponents
    enginio gui qthelp multimedia multimediawidgets multimediaquick network nfc
    opengl positioning printsupport qml qmltooling quick quickparticles quickwidgets
    script scripttools sensors serialport sql svg test webkit webkitwidgets
    websockets widgets winextras xml xmlpatterns webenginecore webengine
    webenginewidgets 3dcore 3drenderer 3dquick 3dquickrenderer 3dinput geoservices
    webchannel texttospeech serialbus

    Arguments:
      [files]                   Binaries or directory containing the binary.

    references:

    http://blog.sina.com.cn/s/blog_66cd08930102w74s.html

  • 相关阅读:
    elastic-job-console
    CentOS7_安装mysql5.7
    CentOS7_开放指定端口
    CentOS7_防火墙
    Docker-CentOS7-安装
    MySQL_写锁_lock tables tableName write
    cesium 动态流动纹理
    cesium加载二维贴地的地名(本地地名数据)
    python3.6安装open AI gym环境(windows)
    python PIL打开较大的tif影像时出错-OSError: cannot identify image file Image.open
  • 原文地址:https://www.cnblogs.com/foohack/p/7478569.html
Copyright © 2020-2023  润新知