入门
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
}