在QT中使用qmake自动生成pro文件,如果要自己定制工程选项,则需要自行修改pro文件。

pro文件有以下关键字:TEMPLATE、TARGET、DESTDIR、DEPENDPATH、INCLUDEPATH、SOURCES、HEADERS、FORMS、LIBS、TRASHLATIONS、RESOURCES、CONFIG、UI_DIR、RCC_DIR、MOC_DIR、OBJECTS_DIR、DEFINES。

其中:TEMPLATE变量定义了工程的编译模式,默认编译为app。TEMPLATE可以为:app、lib(库)、subdirs(多级目录管理)等。

TARGET:生成目标的名字。如:TARGET = mylib

DESTDIR:生成目标的路径。如:DESTDIR = ../bin/ 则目标文件的路径为当前pro文件所在目录的上一级的bin目录下

DEPENDPATH:工程的依赖路径

INCLUDEPATH:指定工程要用到的头文件路径,一般包括用户自定义的头文件路径或没有放入系统头文件路径的头文件路径

SOURCES:工程需要的源文件

HEADERS:工程所需要的头文件,一般包括用户自定义的头文件或未放入系统头文件路径的头文件

FORMS:工程要用到的ui文件(ui文件时用QT设计器生成的)

LIBS:加载动态库文件。如:LIBS+=./mitab/libmitab.so

TRASHLATIONS:加载要用到的语言翻译*.ts文件

RESOURCES:加载要用到的资源*.qrc文件

CONFIG:告诉qmake应用程序的配置信息:这个变量可以用来指定是生成debug模式还是release模式,也可以都生成;也可以用来打开编译器警告(warn_on输出尽可能多的警告信息)或者关闭(warn_off -编译器会输出尽可能少的警告信息);还可以用来配置要Qt加载库,例如如果要用到Qt的多线程,则:CONFIG+=qt thread再例如配置debug或release模式:

CONFIG +=debug_and_release
CONFIG(debug,debug|release){
TARGET= hello
DESTDIR= ./debug
}else{
TARGET= hello
DESTDIR= ./release
}

如果你要在windows下面运行console:CONFIG +=console

UI_DIR:UIC将ui转化为头文件所存放的目录

RCC_DIR:RCC将qrc文件转化为头文件所存放的目录;

MOC_DIR:MOC命令将含Q_OBJECT的头文件转换为标准的头文件存放的目录;

OBJECTS_DIR:生成的目标文件存放的目录;

DEFINES:应用程序所需的额外的预处理程序定义的列表#在.h文件中就可以使用:#ifdefinexx_xx_xxx;

LIBS += -L folderPath //引入的lib文件的路径 -L:引入路径

Release:LIBS+= -L folderPath // release 版引入的lib文件路径

Debug:LIBS+= -L folderPath // Debug 版引入的lib 文件路径

RC_FILE = xxx.icns //程序中所用到的图片等资源文件;

QT是跨平台的,所以我们在不同的平台上用同一个pro文件,这要加入有关平台的信息。windows平台是win32,Linux平台是unix。
例如在Windows和Linux的动态库文件格式是不一样的,一个是lib文件一个是so文件:win32:LIBS+= ./mitab/mitab_i.lib unix:LiBS+= ./mitab/libmitab.so
再如:
win32{
SOURCES+= hello_win.cpp //win平台
}
unix{
SOURCES+= hello_linux.cpp //unix/linux平台
}

可以通过在其它任何一个变量的变量名前加$$来把这个变量的值分配给当前的变量,例如:MY_DEFINES= $$DEFINE #将DEFINE的值分配给MY_DEFINES
又如:
TARGET = myapp
UI_DIR = ../bin/$$TARGET/ui
MOC_DIR = ../bin/$$TARGET/moc
OBJECTS_DIR = ../bin/$$TARGET/objects

则uic所生成的文件在路径../bin/myapp/ui目录下;moc文件在../bin/myapp/moc目录下;obj目标文件在../bin/myapp/objects目录下。

原文地址:https://www.cnblogs.com/boright88/p/6264642.html

QT pro文件解析相关推荐

  1. Qt pro 文件详解

     Qt pro 文件详解 1. TEMPLATE  变量TEMPLATE描述了为建立目标文件而采用何种模板,即生成何种形式的Makefile文件.Qmake  工具定义了5种模板:   a. 应用 ...

  2. Qt pro文件下跨平台宏的使用(windows/linux 以及x86 和 arm的区分)

    #Qt pro文件下跨平台宏的使用(windows/linux 以及x86 和 arm的区分) 在pro文件中添加: #仅在linux 系统下, 硬件平台无关的内容 unix{HEADERS += \ ...

  3. QT pro文件详解

    1.QT pro文件配置项说明 注释:注释是从一行的#开始,到这一行的结束. QT += :这个是添加QT项目需要的模块的,若项目中要排除某个模块,也可用QT -=配置项. TEMPLATE = : ...

  4. qt .pro文件

    转自http://www.cnblogs.com/xupeidong/p/9476957.html 非常感谢大佬分享,自己在这里做个记录 一.名称解释 QT += :这个是添加QT需要的模块 TARG ...

  5. 把cmakelist转化为Qt Pro文件

    文章:https://blog.csdn.net/sinat_24221743/article/details/80280520 cd到cmakelist文件夹下, 使用shell命令: qmake ...

  6. Qt pro文件语法

    在Qt下做开发的时候.pro文件就是工程的配置文件,虽然很多时候里面的选项是工具自动生成的,但是难免会需要手动修改的时候,下面就记录一下它的基本语法 #:在.pro文件中表示注释,注释当前行 TEMP ...

  7. QT pro文件和pri文件的区别

    pro文件是一个工程文件,就是可以独立执行的项目的最高首领: pri文件比pro文件简单的多,单纯的为了编者逻辑上的区分或者思路的厘清,不具备单独执行的条件 一般pri文件包含: HEADERS += ...

  8. QT .pro文件详解

    QT 指定工程中使用的Qt的模块.默认情况下会使用Qt 的core和gui模块. QT += core gui 基础模块简介:https://www.cnblogs.com/lvdongjie/p/4 ...

  9. QT pro文件 Win/Linux跨平台写法

    当我们的程序具有夸平台特性,并且不同的平台调用不同的lib库或者头文件 可以这样写 windows写法 //统一Windows平台的方法 win32{}//仅msvc编译器 win32-msvc*{} ...

最新文章

  1. ATS自定义日志中的各字段解读
  2. JavaScript 计算两个颜色叠加值
  3. 计算机音乐刚好遇见你乐谱,刚好遇见你曲谱_刚好遇见你乐谱
  4. CV之FD之HOG:图像检测之基于HOG算法、简介、代码实现(计算图像相似度)之详细攻略
  5. ktor框架用到了netty吗_如何使用 Ktor 快速开发 Web 项目
  6. 批量导入sql文件。
  7. python 查找文件名包含指定字符串
  8. 微信小程序家庭记账本开发进度二
  9. jQueryh插件imgareaselect
  10. MySQL数据库权限管理
  11. node.js模块引擎
  12. (Windows7)Visual Studio 2017编译运行出现脚本错误的解决方法
  13. aliyun gradle 代理_gradle:现代高效的java构建工具
  14. 47. Use traits for information about types.
  15. python读取同花顺数据_python爬取同花顺数据
  16. java gzip解压请求_使用 gzip 压缩请求正文
  17. js url解码gbk_使用js解码url里的gbk汉字编码
  18. 话费充值哪里便宜?这样充帮我省了不少钱,推荐给您
  19. System.Reflection.ReflectionTypeLoadException
  20. w3c标准语言的是什么,W3C标准及其规范 - Somuns的个人空间 - OSCHINA - 中文开源技术交流社区...

热门文章

  1. 将这五个原则变成习惯,你的开发经验更值钱!
  2. 人生第一个过 5K Star 的 项目 x-spreadsheet 感谢各位大佬的支持
  3. HTML5调用手机前置摄像头或后置摄像头拍照,canvas显示,经过Android测试
  4. CommonJS,AMD,CMD,ES6,require 和 import 详解
  5. Gym-100676E Time Limit Exceeded?
  6. maven The method must override a superclass method
  7. javascript 中 split 函数分割字符串成数组
  8. 03_03 bash特性详解(下)
  9. Devops (1)
  10. MyBatis中的@Mapper注解使用