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