上节我们给出了第一段 Qt 代码,它看起来非常简单,但是该如何生成 exe 程序,看一下实际的运行效果呢?
最简陋最原始的办法是使用 g++ 命令,这样做虽然繁琐,但是能够了解 Qt 程序的编译细节。更人性化的办法是使用 Qt Creator 集成开发环境,它把所有细节都配置好了,我们只需要点一下鼠标就能看到运行效果。
本节只演示 g++ 命令的使用,下节再演示 Qt Creator 的使用。
上节我们给出的代码是:
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMainWindow w;
w.setWindowTitle("Widgets演示"); //设置标题
w.resize(300, 140); //设置客户区大小
QLabel label("城东书院", &w);
label.setGeometry(100, 50, 160, 30);
w.show();
return app.exec();
}
将代码保存到 main.cpp 源文件,并放到 D:\QtDemo 目录(你也可以使用其它名字,放到其它目录)。
我们需要使用 Qt 命令行工具,而不是 Windows 自带的命令行工具;Qt 命令行工具已经为我们配置好了 Qt 环境,编译和运行 Qt 程序非常方便。在开始菜单中可以找到 Qt 命令行工具:
使用 cd 命令进入 main.cpp 所在文件夹:
然后执行如下命令就可以编译并连接生成 main.exe 程序:
对 g++ 命令的几点说明:
上述命令涵盖了编译和链接的全过程,会直接生成 main.exe。生成之后输入 main.exe 就可以运行该程序了。
最后还需要补充两点:1) main.exe 是使用动态链接的,由于 Qt 命令行工具已经配置好了依赖库路径,所以可以在 Qt 命令行工具里运行。但是不能直接双击 helloqt.exe 运行,会提示缺少依赖的 dll 动态库,其依赖的动态库都位于 D:\Qt\5.9\mingw53_32\bin 文件夹里。一般 Qt 程序在 Windows 系统里运行所依赖的动态库比较多,以后会讲 Qt 程序的静态链接发布方式,在讲 Qt 静态库之前大家不要纠结这些动态库的事,都在 Qt 命令行工具里运行程序就行了。
2) 对于新的 Qt 5.7.0 以上版本,都必须使用 C++11 选项来编译,g++的 C++11 选项是-std=c++0x(最新的 VS 编译器默认开启 C++11 支持,不需要这个选项),因此对于最新的 Qt 开发环境,本教程涉及到 Qt 程序手动用 g++ 编译的都要带上-std=c++0x选项。