[Qt] Qt程序发布 [2013-09-16更新]
2013-09-16 16:32
204 查看
- 一般经验
Windows篇
1. 当发布程序缺少插件库(dll形式)时,程序运行时不会提示“缺少xxx.dll”。
2. 发布程序在装有Qt开发环境的PC运行正常,而在没有装Qt开发环境的PC运行出现异常有可能是缺少插件库所致。
3. 发布程序时,插件库与非插件库的处理不同。非插件库可直接把dll文件拷贝至exe文件所在目录或Windows系统目录或环境变量指定的目录,而插件库在拷贝时必须保持 Qt/x.x.x/plugins 目录下各个插件目录原有的目录结构,否则程序无法找到该插件库,从而导致程序运行异常。
例如:ODBC数据库驱动插件的目录为 Qt/x.x.x/plugins/sqldrivers,程序发布时必需把sqldrivers(可根据实际情况精简不需要文件)目录拷贝至exe文件所在目录才能确保程序正常运行。
在上述例子中,如果希望重新指定sqldrivers目录的位置,则可使用以下方法指定。
QApplication::addLibraryPath(QString path);
例如:在代码中添加:QApplication::addLibraryPath(QDir::currentPath() + "/dll"); 意思是把sqldrivers指定到exe所在目录中的dll目录下。接着把sqldrivers拷贝到dll目录下,这样就实现了把sqldrivers目录指定到其他的位置。
! 对于非插件库,暂时找不到方法重新指定其路径。因此发布程序时,非插件库与可执行程序只能放在同一目录下,也可以把被插件库的路径添加到环境变量中。
4. Windows下发布程序中,默认支持的图片格式:*.png,默认不支持:*jpg。
- 可执行文件图标设置
1. 将icon文件(假设为“favicon.ico”)拷贝至工程目录中(.pro文件所在的目录)
支持格式:*.ico
不支持格式:*.png
2. 在Qt Creator中创建一个扩展名为“.rc”的文本文件(假设为“release.rc”),并加入如下内容:
IDI_ICON1 ICON DISCARDABLE "favicon.ico"
3. 编辑.pro文件
此时.pro文件应该有:
OTHER_FILES += \
release.rc
在下面添加如下内容:
RC_FILE = \
release.rc
4. 重新编译
编译完成后,可执行文件的图标将变成和“favicon.ico”相同
- 发布的QT程序无法显示图标和图片的问题
在windows下编译好的QT程序在其他没有安装QT的机器上会出现图标和图片无法正常显示的问题。
这时我们可以通过以下方式来解决:
在release文件夹里创建plugins文件夹,并将QT安装目录下的plugins\imageformats文件夹复制到release\plugins文件夹(imageformats文件夹包含了许多图片格式的插件,如jpeg等)。
然后最重要的一步是在main.cpp中添加:QApplication::addLibraryPath("./plugins");
编译程序之后再发布就即可。
! 用上述的方法可以重新指定插件库的位置
Windows篇
1. 当发布程序缺少插件库(dll形式)时,程序运行时不会提示“缺少xxx.dll”。
2. 发布程序在装有Qt开发环境的PC运行正常,而在没有装Qt开发环境的PC运行出现异常有可能是缺少插件库所致。
3. 发布程序时,插件库与非插件库的处理不同。非插件库可直接把dll文件拷贝至exe文件所在目录或Windows系统目录或环境变量指定的目录,而插件库在拷贝时必须保持 Qt/x.x.x/plugins 目录下各个插件目录原有的目录结构,否则程序无法找到该插件库,从而导致程序运行异常。
例如:ODBC数据库驱动插件的目录为 Qt/x.x.x/plugins/sqldrivers,程序发布时必需把sqldrivers(可根据实际情况精简不需要文件)目录拷贝至exe文件所在目录才能确保程序正常运行。
在上述例子中,如果希望重新指定sqldrivers目录的位置,则可使用以下方法指定。
QApplication::addLibraryPath(QString path);
例如:在代码中添加:QApplication::addLibraryPath(QDir::currentPath() + "/dll"); 意思是把sqldrivers指定到exe所在目录中的dll目录下。接着把sqldrivers拷贝到dll目录下,这样就实现了把sqldrivers目录指定到其他的位置。
! 对于非插件库,暂时找不到方法重新指定其路径。因此发布程序时,非插件库与可执行程序只能放在同一目录下,也可以把被插件库的路径添加到环境变量中。
4. Windows下发布程序中,默认支持的图片格式:*.png,默认不支持:*jpg。
- 可执行文件图标设置
1. 将icon文件(假设为“favicon.ico”)拷贝至工程目录中(.pro文件所在的目录)
支持格式:*.ico
不支持格式:*.png
2. 在Qt Creator中创建一个扩展名为“.rc”的文本文件(假设为“release.rc”),并加入如下内容:
IDI_ICON1 ICON DISCARDABLE "favicon.ico"
3. 编辑.pro文件
此时.pro文件应该有:
OTHER_FILES += \
release.rc
在下面添加如下内容:
RC_FILE = \
release.rc
4. 重新编译
编译完成后,可执行文件的图标将变成和“favicon.ico”相同
- 发布的QT程序无法显示图标和图片的问题
在windows下编译好的QT程序在其他没有安装QT的机器上会出现图标和图片无法正常显示的问题。
这时我们可以通过以下方式来解决:
在release文件夹里创建plugins文件夹,并将QT安装目录下的plugins\imageformats文件夹复制到release\plugins文件夹(imageformats文件夹包含了许多图片格式的插件,如jpeg等)。
然后最重要的一步是在main.cpp中添加:QApplication::addLibraryPath("./plugins");
编译程序之后再发布就即可。
! 用上述的方法可以重新指定插件库的位置
相关文章推荐
- 在Mac上发布QT的程序
- Qt 程序在 windows 下的发布
- Qt在 Mac系统发布程序(widgets和quick2)生成dmg安装文件。
- Qt学习(二)—发布Qt程序
- Qt5+vs2015程序发布
- Hello World程序演示Qt项目的建立、编译、运行和发布
- 为什么将Qt开发的使用数据库的程序发布到其它机器就连接不上数据库?
- QT5程序发布dll依赖
- 【更新】Chromium引擎集成控件DotNetBrowser V1.13发布 | 全新协议处理程序
- Qt程序打包发布
- X11/Linux下发布Qt程序(Deploying Qt Applications for X11/Linux)
- Qt5.0.2 + MinGW编译出来的程序发布
- Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方
- Qt5程序发布后运行,解决出现could not find or load the Qt Platform plugin windows错误
- Qt程序发布到其他电脑上无法运行解决办法(一)
- 在Mac系统下发布Qt程序详细教程
- Qt程序打包发布方法(使用官方提供的windeployqt工具)
- QT5程序发布dll依赖
- VS发布程序安装自动更新
- Qt程序打包发布方法(使用官方提供的windeployqt工具)