我有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 文件的开头。