用命令行编译Qt程序

用命令行编译Qt程序

一、准备工作

创建 main.cpp 文件,放置在空文件夹中

#include 
#include 
#include 

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QMainWindow w;
    QPushButton b(&w);
    b.setText("Hello Qt!");

    w.show();

    return a.exec();
}

用命令行编译Qt程序_第1张图片

二、命令行操作

开始菜单中找到Qt的文件夹,打开Qt的命令行程序。这样不用配置 path
用命令行编译Qt程序_第2张图片
用命令行编译Qt程序_第3张图片

1、qmake -project,生成 .pro 工程文件

用命令行编译Qt程序_第4张图片

2、qmake,生成 Makefile 文件

用命令行编译Qt程序_第5张图片

3、mingw32-make 编译程序

用命令行编译Qt程序_第6张图片
出错了,原因来自 qmake -project 生成的工程文件不完整:

######################################################################
# Automatically generated by qmake (3.1) Thu Nov 18 10:38:20 2021
######################################################################

TEMPLATE = app
TARGET = demo
INCLUDEPATH += .

# You can make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# Please consult the documentation of the deprecated API in order to know
# how to port your code away from it.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

# Input
SOURCES += main.cpp

加入相应的模块引用:

######################################################################
# Automatically generated by qmake (3.1) Thu Nov 18 10:38:20 2021
######################################################################
QT       += core
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TEMPLATE = app
TARGET = demo
INCLUDEPATH += .

# You can make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# Please consult the documentation of the deprecated API in order to know
# how to port your code away from it.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

# Input
SOURCES += main.cpp

4、大功告成
用命令行编译Qt程序_第7张图片
用命令行编译Qt程序_第8张图片
说明:
1、gui 模块是旧版本,新版本中用 wingets 替代了。
2、理论上直接 QT += widgets 是没问题了,但我这边却报错。不知道什么原因,有知道的烦请留言告之。

你可能感兴趣的:(Qt,qt,c++)