Qt:qmake入门指南

入门

1、将examples/qmake/tutorial下的文件复制到某个目录下,
在这里插入图片描述

在这里插入图片描述
ps:可以看出这些文件使用了qt
在这里插入图片描述
2、使用纯文本编辑器创建一个hello.pro

在这里插入图片描述
hello.pro 内容如下:

(1)使用SOURCES变量将源文件添加到项目文件中

  • 第一种写法
SOURCES += hello.cpp
SOURCES += main.cpp
  • 第二种写法
SOURCES = hello.cpp \
          main.cpp

(2)使用HEADERS变量将源文件添加到项目目录中

HEADERS += hello.h

(3)现在,hello.pro 内容如下

HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

3、使用qmake为应用程序生成Makefile

qmake -o Makefile hello.pro

在这里插入图片描述
可以看到生成了Makefile
在这里插入图片描述
ps:对于Visual Studio用户,qmake也可以生成Visual Studio项目文件:

qmake -tp vc hello.pro

4、然后输入make命令,这取决于您使用的编译器。

  • 如果你用MinGW,你的make 叫 mingw32-make
  • 如果你用MSVC,你的make叫 nmake在这里插入图片描述

使应用程序可调试

应用程序的发行版不包含任何调试符号或者其他调试信息。在开发过程中,产生具有相关信息的应用程序的调试版本非常有用。我们可以使用CONFIG实现

例如,hello.pro 内容如下:

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

像以前一样使用qmake生成Makefile。现在,在调试环境中运行应用程序时,您将获得有关该应用程序的有用信息

添加特定于平台的源文件

经过几个小时的编码,您可能已经在应用程序的特定于平台的部分开始,并决定将依赖于平台的代码分开。因此,您现在有两个新文件要包含到您的项目文件中:hellowin.cpp和hellounix.cpp。我们不能仅仅将它们添加到SOURCES变量中,因为那样会将两个文件都放入Makefile中。因此,我们在这里要做的是使用一个范围,该范围将根据我们要构建的平台进行处理。

添加Windows平台相关文件的简单作用域如下所示:

win32 {
    SOURCES += hellowin.cpp
}

当为Windows构建时,qmake将添加hellowin.cpp到源文件列表中。在为任何其他平台构建时,qmake只会忽略它。现在剩下要做的就是为Unix专用文件创建作用域。

完成此操作后,hello.pro 内容如下:

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
    SOURCES += hellowin.cpp
}
unix {
    SOURCES += hellounix.cpp
}

像以前一样使用qmake生成Makefile。

如果文件不存在,则停止qmake

如果某个文件不存在,则可能不想创建Makefile。我们可以使用exist()函数检查文件是否存在。我们可以使用error()函数停止qmake的处理。这与作用域的工作方式相同。只需用功能替换范围条件。检查名为main.cpp的文件如下所示:

!exists( main.cpp ) {
    error( "No main.cpp file found" )
}

完成此操作后,hello.pro 内容如下:

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
    SOURCES += hellowin.cpp
}
unix {
    SOURCES += hellounix.cpp
}
!exists( main.cpp ) {
    error( "No main.cpp file found" )
}

检查多个条件

  • 假设您使用Windows,并且希望qDebug()在命令行上运行应用程序时能够看到语句输出。
  • 要查看输出,必须使用适当的控制台设置来构建应用程序。
  • 这需要使用两个嵌套的作用域。首先创建一个作用域,然后在其中创建另一个作用域。将要处理的设置放入第二个作用域,如下所示:
win32 {
    debug {
        CONFIG += console
    }
}

完成此操作后,hello.pro 内容如下:

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
    SOURCES += hellowin.cpp
}
unix {
    SOURCES += hellounix.cpp
}
!exists( main.cpp ) {
    error( "No main.cpp file found" )
}
win32:debug {
    CONFIG += console
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值