当前位置: 首页 > news >正文

Qt扫盲-QMake 语言概述

QMake 语言概述

  • 一、概述
  • 二、变量
  • 三、替换函数
  • 四、测试函数

一、概述

这里主要就是记录一下如何使用 qmake Manual,里面关于我对 qmake的理解,以及如何配置这个 qt 工程文件,通过配置工程文件,来构建出,APP,库,Qt插件等等,通过查看帮助来配置我们经常使用的内容。在使用的时候,我觉得最重要的其实就是在我这个博客专栏里面的 其他 QMake 相关的内容。这里的东西都是写在 *.pro 文件 或者 *.pri 文件里面,主要还是写在 pro文件里面的哈。

这个 查看 这个内容是在 Qt Assistant 里面

在这里插入图片描述

二、变量

Variables 描述 qmake在配置项目的生成过程时识别的变量。

用户也可以创建自定义变量,当遇到对一个名称赋值时,qmake会使用给定的名称创建一个新的变量。例如:

MY_VARIABLE = value

对于自定义的变量,没有任何使用限制,因为qmake将忽略它们,除非在处理作用域时需要对它们进行评估。

通过变量名使用 “ $$ ” 前缀可以将一个变量的值赋值给另一个变量。例如:

MY_VAR =   $$CONFIG 

现在 MY_VAR 变量包含工程文件中 CONFIG 变量在此处中的内容。等效于下列代码:

MY_VAR = $${CONFIG }

第二种写法允许将变量的内容追加到另一个值,不用空格分隔这两个值就会连接在一起。

例如,下列代码会确保最终的可执行文件有一个包含所使用模板的名称。

TARGET = myproject_$${TEMPLATE}

系统内置变量 定义了很多跟工程相关的内容,就像下面
在这里插入图片描述
我们点击 对应的索引就能跳转到对应详细的内容。

比如 FORMS 变量,他会说明这个是干嘛的,怎么用的之类的。

在这里插入图片描述

FORMS 这个变量指定在编译之前会由 uic 处理的 UI 文件。所有构建这些UI文件所需的依赖项、头文件和源文件都将自动添加到项目中。我们在添加界面类的时候,这个就会把 *.ui文件放在这里,当然我们可以注释掉这些ui.

还比如 CONFIG 变量,可以配置编译的模式是什么之类的
在这里插入图片描述

这个变量里面还可以指定 stl 使用,c++标准的版本之类的,很多很多内容。

在这里插入图片描述

三、替换函数

Qmake提供了在配置过程中处理变量内容的函数。这些函数称为替换函数(replace function)。通常,它们返回的值可以赋值给其他变量。可以在函数前加上$$操作符来获得这些值。替换函数可以分为内置函数和函数库。

在这里插入图片描述

就比如 dirname(file) 就是获取一个 字符串的路径
在这里插入图片描述
就比如要引入很多库的时候,就可以用这个功能,很多时候需要加 $$来区分变量和字符串

LIBPATH = /usr/local/libfor(var, $$list(lib1 lib2 lib3)) {LIBS += -L$$LIBPATH -l$$var
}message($$LIBS)

四、测试函数

测试函数返回一个布尔值,我们可以在作用域的条件部分中对其进行测试。

测试函数可以分为内置函数和函数库。 测试函数和替换函数的区别就是一个是返回bool值,一个返回字符串的。

找到这个目录,点击对应的目录就能够查看详情

在这里插入图片描述
就比如说 equals(variablename, value) 函数
在这里插入图片描述
判断这个 variablename 是不是和 value 一致

还用得到的就比如 include(filename) 函数,我们一般把这个用来包含子目录,就是项目结构比较复杂的时候使用

在这里插入图片描述

http://www.lryc.cn/news/8966.html

相关文章:

  • 代码随想录二刷Day02链表:203.移除链表元素,707.设计链表,206.反转链表
  • Zabbix 3.0 从入门到精通(zabbix使用详解)
  • 基于JDBC框架的事务管理
  • 使用IPV6+DDNS连接内网主机
  • 【新2023】华为OD机试 - 高效的任务规划(Python)
  • sql复习(数据处理、约束)
  • 前端入门~
  • 工业网关控制器CK-GW06-E01与欧姆龙 PLC配置说明
  • uni-app前端H5页面底部内容被tabbar遮挡
  • 昇腾CANN算子开发揭秘
  • 华为OD机试注意事项,备考思路,刷题要点,答疑,od Base 提供
  • Python 自己简单地造一个轮子.whl文件
  • NVIDIA Tesla V100部署与使用
  • 网络知识点梳理与总结
  • 我工作5年测试才8K,应届生刚毕业就拿16K?凭什么
  • 【QT】UDP通信QUdpSocket(单播、广播、组播)
  • 【Java】properties 和 yml 的区别
  • percona软件介绍 、 innobackupex备份与恢复
  • Towards Adversarial Attack on Vision-Language Pre-training Models
  • 2022年最新数据库调查报告:超八成DBA月薪过万,你拖后腿了吗?
  • ESP-C3入门10. 创建TCP Client
  • 【Vue】浅谈vue2、vue3响应式原理,vue中数组的响应式,响应式常见问题分析
  • 股航顶峰先锋一号
  • MYSQL安装部署--Linux 仓库安装
  • NFS服务器搭建
  • 【数据挖掘实战】——航空公司客户价值分析(K-Means聚类案例)
  • AnlogicFPGA-IO引脚约束设置
  • Java SSM 笔记(一)重置版
  • centos安装java,目录授权
  • 【大数据】HADOOP-YARN容量调度器多队列配置详解实战