引言
在使用Qtcreator 编译代码的时候,我经常用 到清除,重新构建
一直也没有什么问题,今天在编译的时候,总是编译不过。
只是清除和重新构建。
后来执行qmake 后编译通过。
下面探究qmake的功能
qmake
首先看看Qt的帮助文档中的描述
- qmake:根据实际环境创建项目文件.pro 并且运行qmake生成适当的Makefile
qmake可以供任何一个软件项目使用,而不用管它是不是用Qt写的,尽管它包含了为支持Qt开发所拥有的额外的特征。
qmake基于一个项目文件这样的信息来生成makefile。项目文件可以由开发者生成。项目文件通常很简单,但是如果需要它是非常完善的。不用修改项目文件,qmake也可以为为Microsoft Visual Studio生成项目。
qmake语言
操作符
在许多项目文件中,赋值符号(=)和追加符号(+=)被用来包含项目中的全部信息,典型的使用
模式是给一个变量赋一列值,然后根据各种测试追加更多的值,因为qmake使用默认的值定义了
一些变量,所以有时候使用移除符号(-=)剔除一些不需要的值也是必要的。下面几节描述了
如何使用运算符来操作变量的内容。
分配值
“=“运算符为变量分配一个值:
TARGET = myapp
上面的一行将TARGET的值设置为myapp,myapp会覆盖TARGET之前的所有值。
追加值
”+=“运算符向变量的值列表中追加一个新值。
DEFINES += USE_MY_STUFF
上述行将USE_MY_STUFF附加到要在生成的Makefile中放置的预处理器定义的列表中。
移除值
”-=“运算符从变量的值列表中删除一个值
DEFINES -= USE_MY_STUFF
变量扩展
$$运算符可以提取一个变量的值,还可以被用来在两个变量之间传递值或者 提供给函数
项目(.pro)文件
一个项目文件是用来告诉qmake关于为这个应用程序创建makefile所需要的细节。例如,一个源文件和头文件的列表、任何应用程序特定配置、例如一个必需要连接的额外库、或者一个额外的包含路径,都应该放到项目文件中。
CONFIG变量
配置变量指定了编译器所要使用的选项和所需要被连接的库。配置变量中可以添加任何东西,但只有下面这些选项可以被qmake识别。下面这些选项控制着使用哪些编译器标志:
- release - 应用程序将以release模式连编。如果“debug”被指定,它将被忽略。
- debug - 应用程序将以debug模式连编。
- warn_on - 编译器会输出尽可能多的警告信息。如果“warn_off”被指定,它将被忽略。
- warn_off - 编译器会输出尽可能少的警告信息。
qmake
根据实际环境创建项目文件.pro 并且运行qmake生成适当的Makefile
构建
构建是增量编译,只编译有变化部分
重新构建
是把所有部分都重新编译
运行
有改动则根据已有的Makefile进行编译,执行构建和重新构建时如果没有Makefile,会根据.pro文件等生成Makefile后再编译
所以运行顺序应该是:qmake-构建-运行
虽然还不知道为什么以前没有qmake 也可以,但是以后还是按照步骤来吧!!!