在建立QT工程的时候,会产生一个pro文件,对于需要引用别人的工程代码的QT程序,很多时候会见到pri文件。这里记录一下我对pro\pri\qmake三者的理解,如果理解不当,希望大牛们更正,共同提高。
在没有复杂引用的工程中(例如整个工程就是一个文件夹的情况下),可以在编辑完源代码之后使用qt的命令行工具来自动生成pro文件(使用qmake -project命令),此后再使用命令qmake才能能生成Makefile文件,此时工程还没有得到编译,再需要输入命令make才能生成可执行文件。但是以上的这种方法对于复杂的工程应用来说是有问题的,一般正常的套路是手工编写一个pro文件,然后使用qmake命令生成Makefile文件,然后使用make命令编译程序代码。
在使用网上的开源代码时,就需要使用pri文件了,对下载的源代码库配置一个pri文件(由PRO文件更改后缀实现的),然后在自己开发的工程中之需要将该pri文件导入即可使用该源代码库。我们使用一个QT的例子解释一下(Analog Clock Window Example)在这个工程中使用了库RasterWindow,所以在pro文件中进行了引用:
include(../rasterwindow/rasterwindow.pri)
# work-around for QTBUG-13496
CONFIG += no_batch
SOURCES += \
main.cpp
target.path = $$[QT_INSTALL_EXAMPLES]/gui/analogclock
INSTALLS += target
然后在工程rasterwindow中编写了一个pri文件如下:
INCLUDEPATH += $$PWD
SOURCES += $$PWD/rasterwindow.cpp
HEADERS += $$PWD/rasterwindow.h
</pre><pre name="code" class="cpp">同时工程中还存在一个pro文件如下:
</pre><pre name="code" class="cpp">include(rasterwindow.pri)
SOURCES += \
main.cpp
target.path = $$[QT_INSTALL_EXAMPLES]/gui/rasterwindow
INSTALLS += target
这样,使用别人的代码之需要指定位置即可,不需要拷贝别人的源代码到同一个目录下,大大提高了代码的模块化程度。