• 15099阅读
  • 7回复

[提问](zt)如何在windows上发布Qt程序 [复制链接]

上一主题 下一主题
离线ycii
 

只看楼主 倒序阅读 楼主  发表于: 2007-12-10
(zt)如何在windows上发布Qt程序
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2011-01-07) —
在网上找到的,希望对像我一样的新手有所帮助
(未测试)

第一种,静态编译。
第二种,同时附上需要的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

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

只看该作者 1楼 发表于: 2007-12-12
不错
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线hanxing30

只看该作者 2楼 发表于: 2007-12-24
请问:
我按照楼主的第二种方法(VC2005编译程序运行时需要的几个dll文件),

a.当执行我的*.exe时,程序中codec为空,并且无法打开数据库(db也为空).
b.当执行QT中examples目录下的各个例子时,Gui相关的程序正常运行,Sql相关的报错(打不开数据库).
c.以上a,b 步骤在我本机上正常运行.

我本机环境 VS2005 集成 QT4.3商业版.

请同学们帮忙给点建议.
离线84211698

只看该作者 3楼 发表于: 2008-04-01
放到当前目录,试了好用,
不过我的程序中带有MYSQL,代码找不到MYSQL驱动
离线lelexy

只看该作者 4楼 发表于: 2008-04-01
好!正想做这个呢,多谢
离线jorneyr

只看该作者 5楼 发表于: 2008-04-01
很有帮助,谢谢
离线ccnufufan
只看该作者 6楼 发表于: 2011-03-11
感觉附加DLL发布文件还是好大啊,QtGuid4.dll就有147M,有没有方法减小?
离线ccnufufan
只看该作者 7楼 发表于: 2011-03-11
刚才用的是debug版,晕!
快速回复
限100 字节
 
上一个 下一个