在一台没有安装Qt的电脑上发布Qt程序(与数据库连接),其方法如下:
直接把DeBug或release中的.exe文件拖出来,直接双击,它需要什么.dll库,就按提示把这些动态链接库找出来,在DeBug中生成的.exe一般会需要:
1、Mingwm10.dll, QtCored4.dll, QtGuid4.dll, QtSqld4.dll(如果你使用了数据库的话)
这四个动态连接库是在双击一个拖出来的.exe时会提示我们的。。。。。
注意:若.exe文件在release文件夹中,则需要的分别是Mingwm10.dll, QtCore4.dll, QtGui4.dll, QtSql4.dll这四个动态连接库。更要注意的是这几个动态连接库都是从安装Qt后的生成文件中复制过来的,并且复制的路径应是Qt4.7.4\qt\bin\,其他地方也有这些动态连接库但是是无效的。
2、需要这样一个额外的动态连接库:libgcc_s_dw2-1.dll这个动态连接库,它也在Qt4.7.4\qt\bin\中
3、3、还有就是插件D:\Qt4.7.4\qt\plugins 其中包含一些插件,例如sqldrivers等文件夹里面就有相应的ODBC驱动,如果要用其它数据库驱动,那么可能还要手动添加,里面还有一些驱动文件夹codecs等,这些是用来识别文字的驱动,如果没有它就不能识别文字等会出现乱码现象,还有一些支持声音的文件夹等等。。。。。
4、可能把上面5个动态连接库和plugins文件夹,以及一个.exe都放在一个文件夹中之后放在比较干净的电脑上仍然不能运行。这很可能是连接不上数据库,找不到插件导致的。
5、这时我们要采取如下措施:
在release文件夹里创建plugins文件夹,并将QT安装目录下的plugins\sqldrivers文件夹复制到release\plugins文件夹(我的程序使用的是SQLite数据库,由于plugins\sqldrivers文件夹里有默认的数据库驱动,所以直接复制过去就可以了,如果是其他数据库可能需要下载其他第三方的sql驱动
然后最重要的一步是在main.cpp中添加以下语句:
QApplication::addLibraryPath("./plugins");
编译程序之后再发布就可以了。