第一课:Qt 工程 .pro 文件各变量设置说明

本文详细解析了Qt项目中的.pro文件各项配置的意义及用法,包括模板定义、目标设置、路径配置、源文件指定等内容,并介绍了如何通过配置项区分调试与发布版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功能描述:讲解 Qt 的 .pro 文件中的各个变量的含义以及赋值方法

注释

以 "#" 开始的行,直到结束

# 工程创建日期:2023.07.25

TEMPLATE

定义了工程的编译模式,默认编译为 app

app, 建立一个应用程序的 makefile,这是默认值

lib ,建立一个库的 makefile

vcapp ,建立一个应用程序的 Visual Studio 项目文件

vclib, 建立一个库的 Visual Studio 项目文件

subdirs, 这是一个特殊的模板,它可以创建一个能够进入特定目录,并且为一个项目文件生成makefile,并且为它调用 make 的 makefile

TEMPLATE=app

TARGET

指定生成的应用程序名

TARGET = pksystem;

DESTDIR

指定生成的应用程序放置的目录

DESTDIR = ../bin/ 

如上,生成的应用程序的路径为当前 pro 文件所在目录的上一级的 bin 目录下

DEPENDPATH

程序编译时依赖的相关路径

DEPENDPATH += . forms include qrc sources

INCLUDEPATH

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

INCLUDEPATH += .

SOURCES

工程需要的源文件

SOURCES += sources/main.cpp sources/painter.cpp

HEADERS

工程所需要的头文件

HEADERS += include/painter.h

FORMS

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

FORMS += forms/painter.ui

LIBS

加载动态库文件,-Lxxx 添加库文件的路径,-lxxx 添加库文件

LIBS+=./mitab/libmitab
Release:LIBS += -L folderPath -lxxx     # release 版引入的lib文件路径
Debug:LIBS += -L folderPath -lxxx       # Debug 版引入的lib文件路径

UI_DIR

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

RCC_DIR

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

MOC_DIR

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

OBJECTS_DIR

生成的目标文件存放的目录

OBJECTS_DIR += ../tmp

DEFINES

定义编译选项,在 .h 文件中就可以使用:#ifdefine xx_xx_xxx

#ifdef xx_xx_xxx

为程序建立图标的两种方法

方法一:RC_ICONS

RC_ICONS = $$PWD/Images/logo.ico

方法二:RC_FILE

RC_FILE += ./appicon.rc

version.h 中定义具体版本等信息(rc 文件是针对 windows 系统的)

#ifndef VERSION_H
#define VERSION_H

#define PRODUCT_ICON           "logo.ico" // 图标
#define FILE_VERSION           4,0,2,666   // 文件版本
#define FILE_VERSION_STR       "4.0.2.666"
#define PRODUCT_VERSION        4,0,2,888   // 产品版本
#define PRODUCT_VERSION_STR    "4.0.2.888"
#define COMPANY_NAME           "Digia"
#define INTERNAL_NAME          "App.exe"
#define FILE_DESCRIPTION       "Qt Creator based on Qt 5.7.0 (MSVC 2013, 32 bit)"  // 文件说明
#define LEGAL_COPYRIGHT        "Copyright 2008-2016 The Qt Company Ltd. All rights reserved." // 版权
#define ORIGINAL_FILE_NAME     "App.exe"             // 原始文件名
#define PRODUCT_NAME           "Qt Creator"          // 产品名称
#define ORGANIZATION_DOMAIN    "https://www.qt.io/"  // 域名

#endif // VERSION_H

.rc文件中信息

# if defined(UNDER_CE)
#  include <winbase.h>
# else
#  include <windows.h>
# endif

#include "version.h"

// 图标
IDI_ICON1       ICON      PRODUCT_ICON

// 版本信息
VS_VERSION_INFO VERSIONINFO
FILEVERSION FILE_VERSION
PRODUCTVERSION PRODUCT_VERSION
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x40004L
 FILETYPE 0x1L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "080404b0"
        BEGIN
            VALUE "CompanyName", COMPANY_NAME
            VALUE "FileDescription", FILE_DESCRIPTION
            VALUE "FileVersion", FILE_VERSION_STR
            VALUE "InternalName", INTERNAL_NAME
            VALUE "LegalCopyright", LEGAL_COPYRIGHT
            VALUE "OriginalFilename", ORIGINAL_FILE_NAME
            VALUE "ProductName", PRODUCT_NAME
            VALUE "ProductVersion", PRODUCT_VERSION_STR
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x804, 1200
    END
END

RESOURCES

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

RESOURCES += qrc/painter.qrc

CODECFORSRC

源文件编码方式

CODECFORSRC = GBK

TRASHLATIONS

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

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
}

CONFIG += console c++11 network

QT 是跨平台的,在不同的平台上用同一个 pro 文件,要加入有关平台的信息

windows 平台是 win32,Linux 平台是 unix

win32:LIBS+= ./mitab/mitab_i.lib   
unix:LiBS+= ./mitab/libmitab.so

可以通过在其它任何一个变量的变量名前加 $$ 来把这个变量的值分配给当前的变量

#将DEFINE的值分配给MY_DEFINES
MY_DEFINES= $$DEFINE 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yann@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值