Qt项目管理

一、qmake的介绍

    qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具。

    手写Makefile是比较困难并且容易出错的,尤其是需要给不同的平台和编译器组合写几个Makefile。使用qmake,开发者创建一个简单的“项目”文件并且运行qmake生成适当的Makefile。qmake会注意所有的编译器和平台的依赖性,可以把开发者解放出来只关心他们的代码。Trolltech公司使用qmake作为Qt库和Qt所提供的工具的主要连编工具。

    qmake也注意了Qt的特殊需求,可以自动的包含moc和uic的连编规则。

Qmake 编译信息可以通过qmake.conf进行配置。


二、pro、pri、prf、prl

    Qt的工程管理文件常用的主要分为pro、pri、prf、prl四种类型的文件,其中pro文件是主文件,另外三种都可以包含在pro文件中,他们的书写规则都遵循qmake的规则。

    1、prl链接文件,这个文件主要和生成与使用静态库密切相关。

    生成静态库时,我们需要使用 config += create_prl 配置,编译生成和库文件同名的 *.prl 文件;

    当工程的TEMPLATE为app时,会自动添加如下指令CONFIG += link_prl,在查找库文件的时候,会尝试找相应的 *.prl 文件进行链接。

    2、prf特征文件,这个文件主要标识编译特性,可以使用两种方式加载

    1)CONFIG += *prf;

    2)load(*prf)。

    3、pri配置文件,通常放置一些通用的配置信息,进行工程管理。

    4、pro工程管理文件,通常放置与具体工程相关的信息,以及进行层叠式模块的管理。


三、qmake的规则简介

    1、使用 # 进行注释;

    2、模板变量告诉qmake为这个应用程序生成哪种makefile。

    例如 TEMPLATE = app 应用程序
    app -建立一个应用程序的makefile。

    lib - 建立一个库的makefile。
    vcapp - 建立一个应用程序的VisualStudio项目文件。
    vclib - 建立一个库的VisualStudio项目文件。
    subdirs -这是一个特殊的模板,创建层叠式子目录,进行工程管理。

(eg:TEMPLATE = subdirs

     SUBDIRS += one

     SUBDIRS += two)

    3、指定生成的应用程序放置的目录  DESTDIR += ../bin ;

    4、指定生成的应用程序名 TARGET = pksystem (和pro文件名相同);

    5、配置信息,CONFIG用来告诉qmake关于应用程序的配置信息。

    例如CONFIG+= qt warn_on release,其中+=为追加,=为赋值,warn_on为qmake要把编译器设置为输出警告信息的,release部分告诉qmake应用程序必须被连编为一个发布的应用程序,此处可以使用debug替换。
    6、指定uic命令,将.ui文件转化成ui_*.h文件的存放的目录 UI_DIR += forms ;

    7、指定rcc命令,将.qrc文件转换成qrc_*.h文件的存放目录
    RCC_DIR += ../tmp ;

    8、指定moc命令,将含Q_OBJECT的头文件转换成标准.h文件的存放目录
    MOC_DIR += ../tmp ;

    9、指定目标文件(obj)的存放目录 OBJECTS_DIR += ../tmp ;

    10、程序编译时依赖的相关路径 DEPENDPATH += . forms include qrc sources ;

    11、头文件包含路径 INCLUDEPATH += . ;

    12、源文件编码方式 CODECFORSRC = GBK ;

    13、工程中包含的头文件 HEADERS += *.h ;

    14、工程中包含的源文件SOURCES += *.cpp ;
    15、工程中包含的.ui设计文件 FORMS += *.ui ;
    16、工程中包含的资源文件 RESOURCES += *.qrc ;

    17、LIBS += -L库路径 -l库名 ;

    18、定义编译选项,DEFINES += XX,在.h文件中就可以使用:#ifdefine xx;

    19、条件编译 (主要区分不同平台和release、debug版本)

    win32 {

    SOURCES += *.cpp

    }

    unix {

    SOURCES += *.cpp

    }

    !exists( main.cpp ) {

    error( “No main.cpp file found” )

    }

    win32:debug {

    CONFIG += console

    }

    CONFIG(debug, debug|release) {

}

(注:{必须放置在条件的同一行))

    20、message(信息);

    21、Include(*.pro/*.pri);

    22、Translations Qt语言国际化文件

    23、命令行(配置好Qt环境变量)qmake -project 生成pro文件(需要配置qmake.conf手动修改pro文件进行处理),qmake  *.pro生成makefile文件,nmake(区分编译器)编译即可;

    24、qmake -tp vc *.pro(-r)生成vs解决方案;

    25、qmake -spec macx-xcode *.pro 生成xcode工程文件;

    26、warn_off - 编译器会输出尽可能少的警告信息;

    27、QT += xml  加入Qt模块;

    28、INSTALLS + = target sources   指定安装路径;

    29、QMAKE_CXXFLAGS_WARN_ON C++编译器警告;

    30、QMAKE_CFLAGS_WARN_ON C编译器警告;

    31、W34100  unreferenced formal parameter ;

    32、W34189  local variable is initialized but not referenced;

    33、contains(config,thread)根据thread是否在config中进行编译。

 

四、qmake编译选项

    1、qmake [options] files

    1)-help 列出qmake帮助信息;

    2)-o file 直接输出到文件file,如果这个选项没有指定, qmake将会尝试使用合适的文件名作为输出,这依赖于当前的运行模式。
    3)-d 列出qmake的调试信息;

    4)-Wall   qmake将会报告所有知道的警告信息。

 

五、参考链接

    1、http://www.kuqin.com/qtdocument/qmake-manual-7.html

    2、https://msdn.microsoft.com/en-us/library/ysb0wexw.aspx


    (注:仅在保留本版权信息、原文链接、原文作者的情况下允许转载,转载请勿删改原文内容, 并不得用于商业用途,谢谢合作。)

 

2022年11月4日-2022年11月14日购买当前课程赠送课程学习地址如下:https://edu.csdn.net/course/detail/32434https://edu.csdn.net/course/detail/35658https://edu.csdn.net/course/detail/30223https://edu.csdn.net/course/detail/32408https://edu.csdn.net/course/detail/32429注:因赠送课程不会出现在已订阅课程列表中,以下课程学习地址一定要收藏保存。#课程服务 在线答疑:本课程设有专门的讨论留言区,学习中遇到任何问题,直接给老师留言即可,老师都会及时进行回复。远程协助:如果遇到复杂问题,老师还可进行远程协助,这个一般可不是一两百元的课程就能享受到的。源码分享:为了让大家更好的进行项目实战,老师还将课程中涉及到的所有源码分享给学员,按照视频中的提示进行下载即可。在CSDN分享C++ Qt开发知识已经有6年了,感谢众多博友对我的支持,了解到很多人对Qt的使用还是有些困扰,例如Qt环境搭建,Qt布局的使用,如何使用Qt编写复杂的界面,如何自定义非标控件,Qt如何和Web交互,Qt和后台接口如何交互等;经过这几年的整理,我决定出这套《Qt高级开发视频教程》,带领大家学习Qt高级开发知识,学习如何使用Qt开发企业级别的项目;通过本课程的学习,大家将会达到企业招聘的中高级要求。为了照顾零基础学员,本课程第一章会介绍Qt环境搭建、QtCreator / VS2019的基本使用方法,Qt整体架构、Qt信号机制,Qt内存管理等知识。即使没有Qt开发的学习经验,也能跟着课程顺利学习。课程核心知识点地图如下: 课程每章核心知识点介绍如下: 第一章:介绍Qt环境搭建、QtCreator / VS2019的基本使用方法,Qt整体架构、Qt信号机制,Qt内存管理等知识。第二章:了解到很多学员对于Qt界面布局很不熟悉,将会详细介绍Qt设计器布局,以及如何C++代码手写布局,从常见的企业级项目入手,带领大家学会各种布局的实现,例如WPS、腾讯会议、优酷、迅雷等界面的实现;界面布局会了,这是企业项目开发的第一步,还有更重要的无边框窗口,如何设计一个合理的无边框窗口很重要,第三/四章:详细介绍如何实现一个无边框窗口,如何自定义标题栏,如何实现拖拽拉伸;第四章将会介绍如何自定义非标控件,优化Qt界面。第五章:介绍Qt web混合编程,一个商用项目,必然会涉及到web交互,这也是很多Qt开发者的弱项,这一章讲详细介绍C++ Qt web混合开发。第六章:既然是做企业级项目,必然需要和后台交互,http编程也是必要的,将详细介绍http编程,用户注册,登录,后台接口请求等知识;通过第五、六章的学习,将会是你的Qt开发技术更上一层楼。第七章:介绍Qt并发编程,耗时任务处理,进程调用等知识。第八、九章:讲解 Qt 比较重要的知识,图形视图结构,以及MVD模式;通过这两章的学习,大家会对图形视图有更好的了解。第十章:本章是独立章节,主要介绍Qt中一些特殊技巧,项目编译,dpi适配、多语言等知识。第十一章:是我们的企业级项目实战:实现一个视频会议客户端,本项目可以进行多人视频通话,直播,桌面分享等功能,本项目我会从零开始,进行项目搭建,功能调试,bug fixed, 带领大家做一个企业级项目。希望通过本课程的学习,大家的C++ Qt开发技术能有质的飞越,能找到自己心仪的工作。课程中如果讲的不对的地方,请大家指出,我及时修正,我也只是一个普通开发者,也不是所有的技术都会,尽我所能,把我所会的教给大家,让我们一起为Qt的发展,尽一份绵薄之力。 下面是本课程一些项目的截图: 1 可以滑动的设置界面         2 所有图形的绘制       3 视频播放器          4 高仿youku界面         5 视频会议         相信通过本课程的学习,大家有能力实现绝大部分客户端项目,从此用C++ Qt再也不会有难写的界面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值