找不到子目录的 .pro 文件 - 当子目录包含相对路径时

Could not find .pro file for sub dir - when subdir contains relative path

我有一个带有子目录模板的顶级 .pro 文件

TEMPLATE = subdirs

SUBDIRS += \
    common/tests

common/tests 包含 .pro 文件,但 qmake 找不到它:

Could not find .pro file for sub dir "common/tests" in "/home/o.antonyan/Documents/mt3/main/src/common/tests"

但它就在那里:

ls /home/o.antonyan/Documents/mt3/main/src/common/tests
api             interfaces            Makefile          tests_common.pro.user  ui
dataformat.cpp  local_enviroment.cpp  tests_common.pro  types

如果我将这个 pro 文件移动到父目录并修改顶级 qmake SUBDIRS += common 那么它就可以工作了。仅当子目录包含的相对路径深度超过 1 级时才会出现问题。

QMake 版本 3.0 在 GNU/Linux x86 上使用 Qt 版本 5.4.1,Qt 从源代码编译

来自docs

It is recommended that the project file in each subdirectory has the same base name as the subdirectory itself, because that makes it possible to omit the file name. For example, if the subdirectory is called myapp, the project file in that directory should be called myapp.pro.

尝试将 tests_common.pro 重命名为 tests.pro

我遇到了同样的问题,并为顶级 .pro 文件找到了这个解决方案:

TEMPLATE = subdirs

tests_common.file = tests/tests_common.pro

SUBDIRS += tests_common

但现在我更喜欢svlasov的回答。