用QT写了一个小软件,比如一个小游戏。构建编译生成exe文件。在我自己的电脑的上是肯定可以运行的,但我想在让该exe文件在别人的机子(没有QT环境)上运行,该如何发布该QT项目?
网上的方法:
1.用debug方式
如果你以前用了Qt 4.5的Qt Creator,并且将QtCored4.dll,QtGuid4.dll,mingwm10.dll等文件放到了C盘的system文件夹下。那么请先将它们删除,不然编译不会通过。
编译完helloworld程序后,如果要直接执行exe文件,需要将安装目录(新版Qt)下的qt/bin目录下的QtCored4.dll,QtGuid4.dll,mingwm10.dll,和libgcc_s_dw2-1.dll(这个是新增的)文件放在exe文件夹中。或者将它们放到系统的system文件夹下。
2.选择release方式
编译程序后生成exe文件
1.需要Qt安装目录下的qt/bin目录中的QtGui4.dll ,Qt Core4.dll,libgcc_s_dw2-1.dll以及mingwm10.dll四个文件的支持,将它们拷贝到exe文件目录下。
2.程序中默认只支持png图片,如果使用了gif,jpg等格式的文件是显示不出来的。需要将Qt安装目录下的qt/plugins/目录中的imageformats文件夹拷贝到exe文件目录下(注意是整个文件夹)。而imageformats文件夹中只需要保留你需要的文件,例如你只需要支持gif文件,就只保留qgif4.dll即可。
我按照此方法,即编译后将上述dll文件放在一起,然后用setup2go软件打包,可是仍旧没用,dubug和release方式都没用。我也尝试过将dll文件放在system32里面,也不行。总是提示“无法定位程序输入点 ??4QImage@@QAEAAV0@$$QAV0@@Z 于动态链接库 QtGui.dll 上。”错误。
跪求大神告诉如何发布QT项目!!让生成的exe文件能在别人的机子上运行!!
我是用Qt Creator2.4.0的,另外程序中有用到jpg、ico、bmp三种格式的图片文件。
------解决方案--------------------
还是得动态编译,在你的发布版即release版的exe文件加里放上相应的动态链接库然后把文件夹发给别人,程序就可以跑了,解决dll出错问题博客:http://blog.csdn.net/iaccepted/article/details/7249952,我做了一个例子,你可以参考下,当然里面包含了四个必要的dll,复制就行了地址http://download.csdn.net/detail/iaccepted/4059507
------解决方案--------------------
建议楼主自己编译Qt试试,多试几次,在命令行下。
就明白了。
------解决方案--------------------
如果是桌面程序的话,只要把 QtSDK 里面需要的 dll 和编译生成的 exe 放在同一目录下就可以了。你的错误看上去是 dll 版本问题。注意是 QtSDK 里面的 dll,而不是 QtCreator 下的。Windows 下,QtCreator 使用的 Qt 库是 VC 编译的,而用 QtCreator 编译出的 exe 是 mingw 的。然后就是各个插件要一起放在 exe 目录下,注意下目录结构就好了,同你找的资料类似。
------解决方案--------------------
不需要拷贝到system里,直接把需要的动态库放在exe所在的目录就行。从楼主的提示来看,应该是exe需要的动态库和你提供的动态库版本不一致。你应该从你编译程序的那个Qt安装目录中找这些文件。
从提示上看也很奇怪,“无法定位程序输入点 ??4QImage@@QAEAAV0@$$QAV0@@Z 于动态链接库 QtGui.dll 上。”
现在的dll应该都是QtGui4.dll,而你的却少了个4