`PRI` 文件在 Qt 项目中是一种项目包含文件(Project Include File),它通常用于组织和复用项目配置,以便在多个 `.pro` 文件中共享相同的设置、源代码文件或资源文件。`PRI` 文件的主要用途是将通用配置、路径、库引用、编译选项等抽象出来,减少冗余代码,使得项目维护更为简洁和模块化。
### 创建 `PRI` 文件
创建一个 `.pri` 文件其实很简单。假设你有一个项目需要在多个 `.pro` 文件中共享一些源文件和配置。你可以按照以下步骤创建 `PRI` 文件:
1. **创建 `.pri` 文件**:
- 在项目的根目录或子目录中创建一个新的 `.pri` 文件。例如,可以命名为 `common.pri`。
2. **在 `PRI` 文件中添加配置**:
- 你可以将需要共享的配置项、路径、源文件列表、编译选项等添加到 `.pri` 文件中。 例如,`common.pri` 文件可能包含如下内容:
```qml
# 设置包含目录
INCLUDEPATH += $$PWD/includes
# 设置源文件和头文件
SOURCES += $$PWD/src/file1.cpp \
$$PWD/src/file2.cpp
HEADERS += $$PWD/includes/file1.h \
$$PWD/includes/file2.h
# 设置编译定义
DEFINES += MY_DEFINE_MACRO
# 设置 Qt 模块
QT += core gui
# 设置库文件路径
LIBS += -L$$PWD/libs -lmylib
```
3. **在 `.pro` 文件中引入 `PRI` 文件**:
- 在你的项目 `.pro` 文件中,使用 `include` 指令引入 `.pri` 文件。 例如:
```qml
TEMPLATE = app
CONFIG += c++11
include(common.pri)
# 其它独立的配置和源文件
SOURCES += main.cpp
```
4. **使用 `qmake` 生成构建文件**:
- 正常使用 `qmake` 生成构建文件,例如 `Makefile`,`qmake` 会自动处理 `.pri` 文件中的内容。
### `PRI` 文件的作用
- **复用配置**: 当你有多个项目或者模块共享相同的配置(例如包含路径、编译选项、库引用等),可以将这些配置抽取到 `.pri` 文件中。然后在各个项目的 `.pro` 文件中引入这个 `.pri` 文件,实现配置的复用。
- **组织大型项目**: 对于大型项目,可能会有多个子模块或者子项目。这些模块可能有相同的配置需求,可以将这些配置集中到一个或多个 `.pri` 文件中,这样在不同模块的 `.pro` 文件中就可以方便地引入这些共享的配置。
- **简化项目结构**: 通过 `.pri` 文件,可以使 `.pro` 文件更为简洁,因为大量重复的配置信息已经被抽取到了 `.pri` 文件中。
### 示例
假设你有一个库项目和一个应用项目,这两个项目都需要一些相同的头文件、源文件和库配置。你可以创建一个 `common.pri`,如下所示:
**common.pri**:
```qml
INCLUDEPATH += ../shared/include
SOURCES += ../shared/src/sharedcode.cpp
HEADERS += ../shared/include/sharedcode.h
LIBS += -L../shared/libs -lsharedlib
```
**libproject.pro**:
```qml
TEMPLATE = lib
CONFIG += c++11
include(common.pri)
# 其他库特有的配置
```
**appproject.pro**:
```qml
TEMPLATE = app
CONFIG += c++11
include(common.pri)
# 其他应用特有的配置
```
通过这种方式,`libproject` 和 `appproject` 可以共享 `common.pri` 文件中的配置,简化了项目管理和维护。
实操:
在文件夹新建子项目文件pri并添加进qt项目:
在pro文件添加pri声明
编辑pri项目,包含要编译的文件