首页 > 编程笔记 > Qt笔记

使用g++命令生成Qt程序

上节我们给出了第一段 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 命令行工具:

Qt命令行工具
图1:Qt 命令行工具

使用 cd 命令进入 main.cpp 所在文件夹:

cd /d D:\QtDemo

然后执行如下命令就可以编译并连接生成 main.exe 程序:

g++  main.cpp  -std=c++0x  -I"D:\Qt\5.9\mingw53_32\include"  -L"D:\Qt\5.9\mingw53_32\lib"  -lQt5Core -lQt5Gui -lQt5Widgets  -o main

对 g++ 命令的几点说明:
上述命令涵盖了编译和链接的全过程,会直接生成 main.exe。生成之后输入 main.exe 就可以运行该程序了。

编译、连接并运行 Qt 程序
图2:编译、连接并运行 Qt 程序

最后还需要补充两点:
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选项。

所有教程

优秀文章