学习《Qt Creator 快速入门》发布程序
开发环境是VS2013编译器,Qt5.5.1
直接创建Qt Widget Application,制作如图UI
代码如下
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QMessageBox"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QMessageBox::information(NULL,"Hello Dialog","My First Dialog!");
}
-
缺少dll的解决方法
然后分别以debug和release版本运行生成
拷贝文件到另外一台电脑,分别运行两个文件夹下的可执行程序HelloWord.exe,然后弹出
因为新电脑上没有相关dll,具体关联关系我也不是太懂,然后把自己电脑上的相关dll拷贝到和HelloWord.exe同级目录。
提示缺少什么dll,就去Qt的安装目录下的bin文件夹里去找,
使用VS编译器
由于我使用的是VS编译器,有些dll需要到VS安装目录去拷贝。我这边的目录地址大致如下
D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Remote Debugger\x86
D:\Qt\Qt5.5.1\5.5\msvc2013\bin
其中要注意版本是X64 还是 X86,文件夹不同可以使用everthing去搜索这些文件,win7自带的搜索太慢。
如果使用的是MinGW编译器
使用MinGW编译器,路径应该是在 Qt安装路径下的bin中,用everthing直接搜索就可得到,后面会附上Qt4.7.2的详情目录图片
- Qt platform plugin “windows “错误解决方法
有的电脑这个时候还会报错,failed to start because it could not find or load the Qt platform plugin “windows ”
1.可能缺少复制 libEGL.dll
2.需要把D:\Qt\Qt5.5.1\5.5\msvc2013\plugins\platforms下qwindows.dll 复制到你的exe执行文件目录。就是platforms文件夹,里面一个qwindows.dll,,但是我的并没有成功,还是老问题,所以我直接把platforms文件夹整体复制过去了,问题到此解决,,,如果此时还有问题,网友提供如下解决方法
3.复制你exe需要的qt插件
首先要在程序中的 main函数中加上 QApplication::addLibraryPath(“./plugins”);
我写的Qt程序只用到了image插件,需要把 D:\Qt\Qt5.2.0\5.2.0\msvc2010\plugins\imageformats,带红色的文件夹包括imageformats里的大部分dll复制到exe执行文件目录就OK了,如果用到数据库插件等,也要复制。
后来我发现我连 libEGL.dll都不需要,如果不清楚需要哪些文件夹中的文件,可以直接把platform中的所有文件拷贝过去,运行HelloWord.exe,然后删除文件看看看影不影响使用
在解决这个问题中提供几个比较有用的工具,
a) everthing文件搜索工具
下载链接:http://pan.baidu.com/s/1hs4oM7y 密码:wpok
b) Process Explorer查看exe使用的dll,使用方法如下图
下载地址链接:http://pan.baidu.com/s/1slKl4lv 密码:i44c
选中进程HelloWord.exe下面蓝色框中D盘中的dll就是我们要拷贝过去的dll,有具体地址,都不需要使用everthing去搜索。
可以看看这些大神写的文章
http://www.cnblogs.com/mmix2009/p/3536825.html
http://blog.csdn.net/u013360881/article/details/51009704
关于发布程序具体流程可以读Qt Creator快速入门的书,下面上传书上的内容: