在文件夹中组织Qt项目文件,并简化包含

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在文件夹中组织Qt项目文件,并简化包含相关的知识,希望对你有一定的参考价值。

简要

如何在pro文件中告诉我的子项目哪个子目录,而不必在每个#include指令中为子目录添加前缀?

问题描述

我有一个包含多个库的大型项目。另外,我正在查看一个具有大量类的库。我试图以这样的方式组织它,以便更容易一目了然地看到一切。

我正在使用Qt Creator。进行逻辑分组的唯一方法是创建文件夹。

enter image description here

“pro”文件看似合乎逻辑:

SOURCES += sample.cpp 
    class1.cpp 
    class2.cpp 
    interfaces/interface1.cpp 
    interfaces/interface2.cpp

在每个文件中,我必须包含其中一个标题,我还必须添加文件夹:

#include "interfaces/interface1.cpp"

我不会再考虑这个,除了......

对于外部库或应用程序,我可以添加他们的专业文件(或包含pri文件)来告诉当前库文件的位置:

INCLUDEPATH += $$PWD/../Sample
INCLUDEPATH += $$PWD/../Sample/interfaces

这创造了魔力:从任何外部库或应用程序,我不需要在include指令前加上文件夹位置。

#include "interface1.cpp"

我无法从当前项目中完成这项工作。我不明白为什么,我想知道如何制作它,以便我不再需要在include指令中添加文件夹路径(同时仍然保持我的文件的可视逻辑组织)。

摘要

对于上面的结构,添加

INCLUDEPATH += $$PWD/../Sample/interfaces

在外部项目的po文件中允许我包含这样的文件:

#include "interface1.cpp"

我希望能够从当前的项目文件中做同样的事情。现在,我被迫包含这样的文件:

#include "interfaces/interface1.cpp"
答案

为子目录创建.pri文件。并在.pro文件中包含.pri。

以上是关于在文件夹中组织Qt项目文件,并简化包含的主要内容,如果未能解决你的问题,请参考以下文章

Qt之pro文件解析

qt,类库项目,并包含 <>

Qt之UI文件设计和运行机制

Qt C++:包含项目文件夹中的所有库文件

如何在 Qt 代码中访问 Qt 构建系统项目 (QBS) 变量

编译 Qt 项目并包含 Qt 库