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

Ole*_*yan 4 qt qmake qt5

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

TEMPLATE = subdirs

SUBDIRS += \
    common/tests
Run Code Online (Sandbox Code Playgroud)

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

Could not find .pro file for sub dir "common/tests" in "/home/o.antonyan/Documents/mt3/main/src/common/tests"
Run Code Online (Sandbox Code Playgroud)

但它在那里:

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
Run Code Online (Sandbox Code Playgroud)

如果我将此pro文件移动到父目录并修改topp-level qmake,SUBDIRS += common那么它可以工作.问题是只有当子目录包含超过1级深度的相对路径时.

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

svl*_*sov 5

来自文档:

建议每个子目录中的项目文件与子目录本身具有相同的基本名称,因为这样可以省略文件名.例如,如果子目录名为myapp,则该目录中的项目文件应称为myapp.pro.

尝试重命名tests_common.protests.pro.


小智 5

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

TEMPLATE = subdirs

tests_common.file = tests/tests_common.pro

SUBDIRS += tests_common
Run Code Online (Sandbox Code Playgroud)

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