QT的项目组织结构和pro文件中的各关键字的含义解释

一、QT项目的组织逻辑

作为C++开发的平台之一,QT具有的诸多特点,这里就不一一赘述。我们着重谈谈QT项目的组织逻辑。用QtCreator创建了一个C++项目后,在项目区视图中,顶级为项目名称,包含其中的次级有此项目的pro文件和头文件、源文件、界面文件、资源、其他文件。pro文件是QT项目的组织架构所在,用来设置编译或者链接的变量,以方便qmake生成Makefile文件

二、pro文件中的关键字含义解释

pro文件中含有许多QT自身定义的关键字,用来接收开发者对QT编译等的设置参数,关键字如下所示:

  • HEADERS工程的头文件(.h),需要头文件多时,反斜杠\结尾,每行均为包含的头文件 HEADERS += include/main.h \
  •                                                                                                                                                                     include/a.h
  • SOURCES工程的源文件(.cpp),需要源文件多时,反斜杠\结尾,每行均为包含的源文件                                     SOURCES+=sources/main.cpp     \                                                                                     
  •                        sources/a.cpp 、
  • TEMPLATE定以工程被编译成什么模式(比如应用程序APP,动态链接库dll,静态链接库lib等),如果没此设置,系统默认编译为application,TEMPLATE=app表示这个工程被编译为一个应用程序、
  • lib:生成库的Makefile
  • subdirs:生成多级目录管理的Makefile
  • TARGET生成最后应用程序的名字   TARGET="helloworld"、
  • DESTDIR指定生成可执行程序的目录、
  • DEPENDPATH工程的依赖路径  DEPENDPATH += . forms include qrc sources
  • INCLUDEPATH指定工程要用到的头文件路径
  • FORMS工程要用到的ui文件(由qt设计器生成)  FORMS += forms/painter.ui
  • LIBS: 加载静态库
  • CODECFORSRC: 源文件编码方式,如 GBK,UTF8等
  • TRANSLATIONS加载用到的语言翻译.ts文件
  • RESOURCES加载要用到的资源.qrc文件
  • CONFIG: qmake应用程序的配置信息
    1. 可以指定是生成debug模式还是release模式,也可以都生成
    2. 也可以用来打开编译器警告 (warn_on输出尽可能多的警告信息)或者关闭(warn_off编译器会输出尽可能少的警告信息)
    3. 还可以用来配置QT加载库(qt+多线程:CONFIG+=qt thread)
  • RCC_DIR:将qrc资源文件转化为qrc_*.h头文件所存放的目录
  • UI_DIR将ui转化为头文件ui_*.h所存放的目录
  • MOC_DIR将含Q_OBJECT的头文件转换为标准的.h头文件存放的目录
  • OBJECTS_DIR生成的目标文件(.obj)存放的目录
  • DEFINES预处理程序定义,在.h文件中就可以使用#ifdefinexx_xx_xxx
  • LIBS+= -L  folderPath  //引入的lib文件的路径  -L:引入路径
  • ReleaseLIBS+=-L  folderPath // release 版引入的lib文件路径
  • Debug:LIBS+= -L folderPath // Debug 版引入的lib文件路径
  • RC_FILE = xxx.icns   //程序图标
  • VERSION:用来表示当前程序的版本号码
  • QT:表示用到的模块   如:QT += core  QT += svg QT += network  QT += xml
  • $$:在任何一个变量名前加$$把变量的值赋给当前的变量,MY_DEFINES= $$DEFINE        #将DEFINE的值分配给MY_DEFINES、
  • $$PWD 指当前pro文件所在的目录
  • ../  是当前pro文件所在目录的上一级目录
  • 是目录里面的意思、
  • ./  相对路径中有和没有是一样的、
  • -l  指定库的名称、
  • -L  指定目录、
  • \  用来隔行、

---------------------------------------------------------------------------------------------------------------------------------

本文部分内容参考了:Eddy2009作者的博客https://blog.csdn.net/liminwang0311/article/details/57096500 和踏莎行hyx的博客https://blog.csdn.net/u012234115/article/details/71295785,表示感谢!!!

你可能感兴趣的:(QT)