• 干净地发布QT程序


    原文请看:http://www.cnblogs.com/DrizzleX/articles/2475044.html

    本文研究这样一个问题:使用QT SDK和VS2008开发了一个程序,将这个程序放到另一台“干净”的主机上,如何保证程序正确运行。

    本文也适用于QT与VS05/VS03/MINGW等配合开发的情形,举一反三的事情请读者自己去做。

    1.QT根目录“bin”文件夹下的相应*.dll文件是需要拷贝到程序所在的目录下的。一般地,QtCore4.dll和QtGui4.dll是必备的,同时根据情况需要,可能需要拷贝更多的DLL到程序所在的目录下。具体拷贝那些文件可以采用:

    1>尝试法,在测试的主机上(或去除了QT环境变量的本主机),尝试运行程序,会出现提醒“缺少**.dll文件”,如此迭代,可以逐渐将所需DLL补全

    2>查看法,使用dependency walker,查看*.exe文件依赖的所有DLL文件,拷贝之

    2.需要将VS2008对应的运行时库拷贝到程序所在的目录。运行时库在VS安装目录下,如“C:Program FilesMicrosoft Visual Studio 9.0VC edistx86Microsoft.VC90.CRT”,将该完整的文件夹“Microsoft.VC90.CRT”拷贝到程序所 在的目录。

    3.最后,却非常重要的是,如果程序使用了QT插件,如:文字编码、图像读写(PNG/BMP不需要)、粒子系统等,则需要将插件也拷贝到程序所在目录。举例如下:

    >>程序使用了中文编码,则需要“QTDIR/plugins/codecs/qcncodecs4.dll”文件,将"codecs/qcncodecs4.dll"(没有plugins)保持目录结构

    >>拷贝到程序所在的目录下,然后将之前的“Microsoft.VC90.CRT”文件夹拷贝到“codecs/”文件夹下,这一点非常重要,

    >>每多使用一类插件,就需要在相应的叶子文件夹下添加“Microsoft.VC90.CRT”,如假若又使用了图像读写,则需要

    >>拷贝“QTDIR/plugins/imageformats”到程序所在目录的“imageformats/”下,并在“imageformats/”下添加“Microsoft.VC90.CRT”

    一个示例目录如下:

    ===============================================

    demo.exe

    - Microsoft.VC90.CRT/

    Microsoft.VC90.CRT.manifest

    msvcm90.dll

    msvcp90.dll

    msvcr90.dll

    -codecs

    +Microsoft.VC90.CRT/

    qcncodecs4.dll

    -imageformats

    +Microsoft.VC90.CRT/

    qgif4.dll

    qico4.dll

    qjpeg4.dll

    qmng4.dll

    qsvg4.dll

    qtiff4.dll

    -Qt

    -labs

    -particles

    qmlparticlesplugin.dll

    +Microsoft.VC90.CRT/

    QtCore4.dll

    QtGui4.dll

    QtScript4.dll

    QtNetwork4.dll

    QtDeclarative4.dll


    ===================================================

    可以考虑使用QApplication::AddLibraryPath()方法添加DLL的加载路径,从而使发布的程序的链接库安排更加合理,

    但这已经无关紧要了,是锦上添花的事情。

  • 相关阅读:
    Android开发学习一:环境搭建
    Python Challenge
    Python Challenge
    Python Challenge
    Centos中的mysql安装以及配置
    linux查询日志内容命令
    搭建elasticsearch过程中遇到的问题
    启动kafka后闪退
    zookeeper环境搭建
    nginx安装
  • 原文地址:https://www.cnblogs.com/mmix2009/p/3536494.html
Copyright © 2020-2023  润新知