qmake、pro文件、pri文件和makefile文件的功能及它们之间的关系
qmake、pro文件、pri文件和makefile文件的功能及它们之间的关系
提到Pro文件和Pri文件,要先提到qmake工具。
在进行Qt开发时,qmake工具是与Qt一起提供的,用来编译Qt本身,并生成Qt自带的工具和例子。
在开发Qt的过程中,qmake生成的工程文件(pro文件)用于编译应用程序和插件,可以说qmake的主要目的是生成pro文件的makefile。
下面是makefile的几个版本的功能描述:
version 1:一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
version 2: makefile文件描述了源程序之间的相互关系,并自动维护编译工作。makefile文件是按照某种语法进行编写的,文件中说明了如何编译各个源文件并连接生成可执行文件,并定义了源文件之间的依赖关系。makefile文件是许多编译器,包括 Windows NT下的编译器,维护编译信息的常用方法,只是在集成开发环境中,用户通过友好的界面修改 makefile 文件而已。
version 3:makefile带来的好处就是“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。
version 4:在 UNIX 系统中,习惯使用 Makefile 作为 makefile 文件。如果要使用其他文件作为 makefile,则可利用make命令选项指定 makefile文件
pri文件跟pro文件没有本质区别,都是起到包含路径等作用,区别在于pro文件是主要文件,pri是附属文件。下面是解释:
如果有几个工程文件需要共享相同的项,则可以把相同的项提取到单独的文件中,在各自的pro文件中使用include()语句包含它们。通常,打算被别的工程文件包含的(工程)文件以pri(工程包含project include的意思)作为扩展名。
参考:
1.《C++ GUI Qt 4编程(第二版)》
2. Makefile百科