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

Pro文件变量详细说明

学习Qt时,发现有些知识看了不经常用就忘了,以下是书本上写的一些关于qmake的相关知识,自己看后,打算把一些经常用到的记下来,整理整理。

Qt程序一般使用Qt提供的qmake工具来编译。

qmake工具可以使用与平台无关的.pro文件生成与平台相关的makefile。该工具包含了调用Qt内置代码生成工具(mocuicrcc)的必要逻辑规则。

 

可以在命令行下,输入qmake -project来生成平台无关的pro文件。

工程文件pro主要分为三种:app(单独的应用程序),lib(静态和动态库),subdirs(递归编译)。工程类型可以使用TEMPLATE变量来指定。

如: TEMPLATE = app(默认不指定的情况下是app工程)

对于app工程或者lib工程,有以下这些经常使用的变量:

HEADERS:指定C++头文件

SOURCES:指定C++实现文件

FORMS:指定需要uic处理的ui文件

RESOURCES:指定需要rcc处理的qrc文件

DEFINES:指定预定义预处理器符号

INCLUDEPATH:指定C++编译器搜索头文件路径

LIBS:指定工程要链接的库

CONFIG:指定工程配置和编译参数

QT:指定工程所要使用的Qt模块

VERSION:指定目标库版本号

TARGET:指定可执行文件或库的基本文件名,默认为当前目录名

DESTDIR:指定可执行文件放置的目录

DLLDESTDIR:指定目标库文件放置的目录


CONFIG:指定工程配置和编译参数

以下对CONFIG变量做主要介绍:

debug:编译有调试信息的可执行文件或则库

release:编译不具有调试信息可执行文件或者库(如果同时指定debug release时,只有debug有效)

warn_off:关闭大量警告,默认是打开的

qt:指应用程序使用Qt

dll:动态编译库

staticlib:静态编译库

plugin:编译一个插件

console:应用程序需要写控制台

当我们写CONFIG变量时,可以使用

如:CONFIG = qt release warn_off

或者CONFIG = qt

      CONFIG += release

      CONFIG += warn_off

当想要移除某个设置时:CONFIG -= warn_off

在pro文件里,可以使varNamevarName或者

{varName }来访问自己定义的变量,如

MyVersion = 1.2

FILE = 1.cpp

TARGET = improve$${MyVersion}

SOURCES = $$FILE

pro文件里,访问环境变量的用法是:$(varName)

pro文件里,访问Qt配置参数的用法:$$[varName]

在不同的编译平台上编译时,需要设定条件。如:

win32{

 SOURCES += 1.cpp

}else{

 SOURCES += 2.cpp

}

或者

win32:SOURCES += 3.cpp

相关文章:

  • 浅谈 qmake 之 pro、pri、prf、prl文件
  • android实现点击两次返回键实现退出功能
  • Qt共享内存的使用
  • Qt for android 弹出Detected problems with app native libraries (please consult log for detail): 解决方案
  • qml去掉标题栏后实现窗口拖动
  • Qt for android 在安卓上面运行app启动闪黑屏的解决方法
  • Qt 中文及字符混合加密,双重加密解密
  • Qt 实时监控网络状态
  • VNISEdit工具打包QT程序
  • Linux安装python3.6
  • Qt如何输出日志输出文件(最全最新的框架方法,包含Qt4和Qt5)
  • GCC 7.3.0编译安装
  • add-apt-repository: command not found
  • Ubuntu12.04升级C++11标准
  • ubuntu中安装lua5.3
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 4. 路由到控制器 - Laravel从零开始教程
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • ERLANG 网工修炼笔记 ---- UDP
  • Gradle 5.0 正式版发布
  • hadoop集群管理系统搭建规划说明
  • Java编程基础24——递归练习
  • leetcode98. Validate Binary Search Tree
  • Less 日常用法
  • mac修复ab及siege安装
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 阿里云应用高可用服务公测发布
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 大快搜索数据爬虫技术实例安装教学篇
  • 如何合理的规划jvm性能调优
  • 算法-图和图算法
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 选择阿里云数据库HBase版十大理由
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (六)vue-router+UI组件库
  • (四) Graphivz 颜色选择
  • (转)关于pipe()的详细解析
  • (转)为C# Windows服务添加安装程序
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • 、写入Shellcode到注册表上线
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Core 成都线下面基会拉开序幕
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net MySql
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET 使用 XPath 来读写 XML 文件
  • .net 无限分类
  • .NET性能优化(文摘)
  • .php文件都打不开,打不开php文件怎么办
  • @requestBody写与不写的情况
  • @RequestParam详解
  • @Transactional 详解