SkylineSoft

莽莽苍节兮 群山巍峨 日月光照兮 纷纭错落 丝竹共振兮 执节者歌 行云流水兮 用心无多 求大道以弹兵兮凌万物而超脱 觅知音因难得兮唯天地与作合
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Qt 发布程序

Posted on 2011-05-14 14:58  Jiangwzh  阅读(3788)  评论(0编辑  收藏  举报
VC2005编译的程序)

或者提示找不到需要的dll文件,(没有找到 **.dll,因此这个应用程序未能启动)


(mingw32编译的程序)

有两种方法可以解决这个问题。

第一种,静态编译。
第二种,同时附上需要的dll文件。

静态编译

优点,发布简单,单一文件。
缺点,库文件很大,更新程序版本不方便。每次升级,都要重新分发所有的内容。
。。。。。

mingw平台静态编译,在编译Qt的时候,有个configure.exe 程序,
configure.exe -static -platform win32-g++
可以产生静态编译项目文件。然后,
mingw32-make sub-src
就可以编译出静态库。如果只是用来分发程序,也可以mingw32-make release sub-src 只编译一个静态库。

VC2005平台,在编译Qt的时候,configure.exe -static-platform win32-msvc2005
然后nmake sub-src或者nmake release sub-src完成静态编译。

再然后,就是把你的程序重新用静态编译的Qt再编译一次。
你会得到一个非常大的可执行程序。推荐使用AspPack压缩一下。就可以发给用户了。

附加Dll文件

优点,更新方便,发布多个产品时,可以统一使用一个库。
缺点,文件多、杂。
。。。

mingw编译程序运行时需要的几个dll文件
mingwm10.dll
QtCore4.dll
QtGui4.dll

VC2005编译程序运行时需要的几个dll文件
Microsoft.VC80.CRT.manifest 位于 x:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\\Microsoft.VC80.CRT
msvcm80.dll
msvcp80.dll
msvcr80.dll
QtCore4.dll
QtGui4.dll

推荐一个很好用的工具,微软出的一个小工具Dependency Walker,也被微软集成到了它的VS里面。在
x:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\depends.exe
它可以检测出绝大多数的程序需要的dll库文件。这样,就不用手动去查找缺失的dll文件了。
另外,还有一些你程序附加的dll库文件,比如,sql.dll libpng.dll

下面,就可以发布你的程序了~