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

QT中pro文件常用qmake语法

变量

配置QT模块
QT += core gui sql network
QT -= sql
注释
# 开启注释
# DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    
# disables all the APIs deprecated before Qt 6.0.0
添加源文件
SOURCES += \main.cpp \widget.cppSOURCES = *.cpp
SOURCES = 1.cpp 2.cpp 3.cpp
添加头文件
HEADERS += \widget.h
添加UI文件
FORMS += \widget.ui
指定目标文件名
  • 如果不设置的话则目标文件名为项目名
TARGET = filename
生成目标模板
  • app 生成应用程序,默认
  • lib 生成库文件
TEMPLATE = app
搜索引用外部头文件
INCLUDEPATH += c:/msdev/include 
INCLUDEPATH += d:/stl/include
引用第三方库文件
  • -L 表示库文件所在目录
  • -l 表示具体的库文件名(默认省略通用的前缀和后缀)
  • 目录路径有空格的话需要使用双引号
LIBS += -L/usr/local/lib -lmath
LIBS += c:/mylibs/math.libLIBS += "C:/mylibs/extra libs/extra.lib"
指定编译过程产生的中间文件存放路径
MOC_DIR = temp/moc           # moc文件
RCC_DIR = temp/rcc           # rcc文件
UI_DIR = temp/ui             # ui文件
OBJECTS_DIR = temp/obj       # o文件
指定目标文件存放路径
DESTDIR = bin                # exe文件
指定项目配置和编译器选项
  • C++11 -> 开启C++11语法
  • C++14 -> 开启C++14语法
  • warn_off -> 编译器减少警告输出
  • … -> 还有很多选项,需要请查看QT帮助文档
CONFIG += c++11 warn_off
添加自定义变量
  • 自定义变量可以在代码文件中使用
DEFINES += Lin#ifdef LinqDebug() << "define Lin";
#elseqDebug() << "not define Lin";
#endif
linux下生成的目标应用程序可双击打开运行
QMAKE_LFLAGS += -no-pie
添加资源文件
RESOURCES += \src.qrc
获取变量的值
# 使用$$
message($$TARGET)
跨平台处理
  • 多行时平台参数名与左花括号需在同一行
// window平台
win32 {OBJECTS_DIR = c:/myproject/tmp
}// Linux平台
unix {OBJECTS_DIR = ../myproject/tmp
}// 单行写法
unix:OBJECTS_DIR = ../myproject/tmp
win32:OBJECTS_DIR = c:/myproject/tmp

函数

将指定文件包含到当前项目中
include($$PWD/network/network.pri)
信息打印
# 正常打印信息,打印后继续编译执行
message("This is a message")# 打印错误信息,打印后停止编译执行
error("An error has occurred in the configuration process.")
判断某个变量是否包含某个值
# contains(variablename, value)
contains(drivers, network) {# drivers contains 'network'message("Configuring for network build...")HEADERS += network.hSOURCES += network.cpp
}
条件判断
# 格式一
win32 {debug {CONFIG += console}
}# 格式二
win32:debug {CONFIG += console
}
CONFIG变量条件判断
# 判断第一个参数是否在第二个参数集合中的激活状态,用于区分当前的编译版本是debug还是release
CONFIG = debug
CONFIG += release
CONFIG(release, debug|release):message(Release build!) #will print
CONFIG(debug, debug|release):message(Debug build!) #no print
判断文件是否存在
exists(/local/qt/qmake/main.cpp) {SOURCES += main.cpp
}
http://www.lryc.cn/news/4891.html

相关文章:

  • Android 一体机研发之修改系统设置————声音
  • 挖掘长尾关键词的五大思路
  • ccc-Brief Introduction of Deep Learning-李宏毅(6)
  • 【TVM 学习资料】用 Schedule 模板和 AutoTVM 优化算子
  • 蓝牙Mesh学习笔记(一)
  • 【1234. 替换子串得到平衡字符串】
  • 独自开:提供创业机会、享受平台分红、推出新颖赚钱副业
  • C++【二叉树进阶(二叉搜索树)】
  • 【C++初阶】vector的使用
  • OPenPCDet windows流程及其问题
  • 【自学Python】Python字符大小写判断
  • 设计模式之美总结(开源实战篇)
  • 两个月,测试转岗产品经理,我是怎么规划的?
  • 三数之和-力扣15-java排序+双指针
  • 【编程基础之Python】3、创建Python虚拟环境
  • kettle开发-Day36-循环驱动作业
  • 2023秋招 新凯来 算法工程师 面经分享
  • Web3CN|Damus刷频背后,大众在期待什么样的去中心化社交?
  • Jenkins自动发布到WindowsServer,在WindowsServer执行的命令
  • 【Git学习】Git如何Clone带有Submodule的仓库?
  • C语言进阶——通讯录模拟实现
  • 【C#基础】C# 变量和常量的使用
  • nvm安装后出现‘node‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
  • 张驰咨询:关于六西格玛,有一些常见的疑惑!
  • 【Vercel】教你部署imsyy/home个人主页
  • GeekChallenge
  • Java文件IO
  • useSSL使用安全套接字协议(史上最全最详细)
  • 面向对象复习(2)
  • python中使用numpy包的向量矩阵相乘