在QMK的根目录下有很多文件,有一个COPYING文件,这个文件是合GNU的版权有关的信息,GNU GENERAL PUBLIC LICENSE。我们不用去理会它。
在根目录下还有一些.pro文件,如debian.pro、eeepc.pro、gentoo.pro、osx.pro、suse.pro、win.pro。我们知道,QT是源码级的跨平台,这些文件都是支持不同操作系统平台的工程文件。其中win.pro是windows系统的平台工程文件。
win.pro的代码如下:
include( ../examples.pri )
include(QMapControl.pri)
QWT_ROOT = ../qwt-5.1.1 //这里设置了QWT的目录,系统根目录下的qwt-5.1.1文件夹,这里用的qwt的版本是5.1.1,这个版本还有很多问题,现在已经出了5.2.0了,我们决定用后者,所以这里需要修改
include( $${QWT_ROOT}/qwtconfig.pri )
SUFFIX_STR = $${RELEASE_SUFFIX} //这个还不确定,估计是和编译有关的
INCLUDEPATH += $${QWT_ROOT}/src //INCLUDEPATH 描述了编译该工程时编译器需要搜索的#include路径,这里的搜索路径为qwt根目录下的src文件夹
DEPENDPATH += $${QWT_ROOT}/src //DEPENDPATH 描述了建立建立应用程序所依赖的其他文件所在的路径
QWTLIB = qwt$${SUFFIX_STR} //这个是和qwt库有关的,qwt需要编译之后才有lib库,在后面的章节中介绍qwt的编译
contains(CONFIG, QwtDll) //接下来的几行还没有搞明白,搞明白再写吧
{
DEFINES += QT_DLL QWT_DLL
QWTLIB = $${QWTLIB}$${VER_MAJ}
}
win32-msvc:LIBS += $${QWT_ROOT}/lib/$${QWTLIB}.lib //从接下来的几行来看,本工程可能是用VS编译的
win32-msvc.net:LIBS += $${QWT_ROOT}/lib/$${QWTLIB}.lib
win32-msvc2005:LIBS += $${QWT_ROOT}/lib/$${QWTLIB}.lib
win32-g++:LIBS += -L$${QWT_ROOT}/lib -l$${QWTLIB}
TEMPLATE = app //为建立应用程序创建Makefile文件
OBJECTS_DIR = build/.o_win32 //描述了编译连接应用程序过程中产生的中间文件的存放位置
UI_DIR = build/.ui
MOC_DIR = build/.moc
RCC_DIR = build/.rcc
DESTDIR = build/bin //定义了存放可执行文件的路径
DEFINES += _TTY_WIN_ QWT_DLL QT_DLL _WIN32_
include(global.pri)
第一、二行和最后一行的include所起的作用是,将 ../examples.pri 、QMapControl.pri和global.pri文件包含到工程里。但是第一行的include( ../examples.pri ),在整个工程目录中没找到examples.pri工程,这个文件在qwt的目录中,在qwt中的examples文件夹下。所以本工程还需要qwt支持,在这里先解释win.pro中的代码,在接下的章节中再说qwt的安装于使用。QMapControl.pri和global.pri两个文件都在工程根目录下,文件中包含了一些头文件和源文件。
QWT_ROOT = ../qwt-5.1.1 这一行指明了qwt的路径。这里用的qwt的版本是5.1.1。
include( $${QWT_ROOT}/qwtconfig.pri )这一行包含了在qwt根目录下的qwtconfig.pri文件。
接下来的解释直接在上面的源码后面进行吧!