将子项目 .pri 包含在另一个文件夹中



我有qt项目proj1依赖于另一个(proj2)。

目录树是这样的:

common/
      `--/pr1/ 
            proj1.pri
            main.cpp
      `--/pr2/
            proj2.pri
            src1.cpp
            src2.cpp

项目1 包括项目2:

include(../proj2.pri)

在 Proj2.pri 中,源按当前 (PR2) 目录中列出:

SOURCES += src1.cpp  
           src2.cpp 

因此,当我尝试构建proj1时,我收到以下错误:

make: *** No rule to make target `src1.cpp', needed by `src1.o'.  Stop.

有没有正确的方法可以在pri文件的帮助下包含子项目的源代码(我需要这样做进行调试)?

在 proj1.pri 中,在包含 proj2.pri 之前:

PROJECT_ONE_IS_DEFINED = 1

在 proj2.pri 中:

isEmpty(PROJECT_ONE_IS_DEFINED){ 
    DEPENDPATH += pr2
    INCLUDEPATH += pr2
} !isEmpty(PROJECT_ONE_IS_DEFINED){
    DEPENDPATH += ..pr2
    INCLUDEPATH += ..pr2
}
这样,如果单独使用,项目2将被正常包含,

如果作为项目1的一部分使用,则将正确包含。

或者,您可以简单地将 pr2 的路径添加到 project1 中的 DEPENDPATH,只要将 cpp 文件的路径添加到依赖路径,make 就可以正常工作

编辑:

允许在许多项目中包含 .pri 文件而不必担心每种情况的特定路径的最有效方法是添加

DEPENDPATH += $$PWD
INCLUDEPATH += $$PWD

在每个 .pri 文件的开头。

相关内容

最新更新