~风介~ 发表于 2015-3-26 20:42:37

Qt之打包发布

本帖最后由 ~风介~ 于 2015-11-20 20:03 编辑

原文出处:Qt之打包发布(NSIS详解)

一、发布方式            
    Qt发布的时候,通常使用两种方式:   
   (1)静态编译
   (2)动态编译    静态编译:把相关联的库一并引入可执行程序,虽然发布简单,但可执行程序较大。。。
    动态编译:相关联的库,以dll的形式引用,不被包含进可执行程序,发布不方便,但可执行程序较小。。。
    静态发布虽然不需要较多的dll,发布简单、方便,但是往往会牵扯到授权问题(详情请查看Qt LGPL授权),动态发布则可以避免。。。如果附带了Qt的dll,就相当于发布了Qt的dll,而这些库是属于Qt的,这足以保证使用者知道程序使用了LGPL版本的Qt(这部分还有待探讨)。


二、动态编译:
    思路:把相关依赖项放到和源程序放到相同文件夹。
   常用依赖库
   (1)Qt模块库
      Qt5Cored.dll
      Qt5Guid.dll
      Qt5Widgetsd.dll
    (2)ICU依赖库
      icudt51.dll
      icuin51.dll
      icuuc51.dll
    (3)EGL依赖库
      libEGLd.dll
      libGLESv2d.dll
    (4)插件库(Qt安装目录下即可找到D:\Software\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms)
      图片支持库:imageformats
      音频、视频支持库:mediaservice
      平台支持库:platforms
   等等。。。
   注意:查找对应的插件文件夹,粘贴到安装目录(一定要保持目录结构,例如“platforms/***.dll”),详细结构见打包发布准备的文件组织结构。

    (5)VS运行时库(在VS安装目录下即可找到D:\Software\Microsoft Visual Studio\VC\redist)
      msvcp100d.dll
      msvcr100d.dll

    注意:发布程序的时候注意版本(Debug/Release)
    如果是Debug版本的则是.前面带d的(Qt5Cored.dll、Qt5Guid.dll、Qt5Widgetsd.dll)
    如果是Release版本的则是.前面不带d的(Qt5Core.dll、Qt5Gui.dll、Qt5Widgets.dll)

   
    以上是我所用到的依赖库,基本可以解决问题.





Qt/PyQt
页: [1]
查看完整版本: Qt之打包发布