Qt qmake:警告:没有规则使目标停止

Qt qmake:警告:没有规则使目标停止,qt,qmake,Qt,Qmake,我遇到过很多类似的帖子,但没有一篇对我有帮助 我有一个项目,其中有一个应用程序和测试。App和test都依赖于一个公共lib(它是App的子模块)。这是我的项目结构 | |_ _Application.pro |_ _App/app.pro |_ _lib/lib.pro |_ _TestSuite/ |_ _Test.pro 该应用程序编译得很好,但当我运行make on test时,它不会抛出任何规则,使test.pro停止所需的target lib.pro 如

我遇到过很多类似的帖子,但没有一篇对我有帮助

我有一个项目,其中有一个应用程序和测试。App和test都依赖于一个公共lib(它是App的子模块)。这是我的项目结构

|
|_ _Application.pro
|_ _App/app.pro
|_ _lib/lib.pro
|_ _TestSuite/
             |_ _Test.pro

该应用程序编译得很好,但当我运行make on test时,它不会抛出任何规则,使test.pro停止所需的target lib.pro


如果我将lib文件复制到TestSuite下,那么它可以完美地工作。因此,子目录必须是当前应用程序的子目录吗?

虽然我目前在文档中找不到它,但我至少找到了一个声明:使用
子目录
模板的.pro文件不应使用指向目录结构上方的目录。pro文件应该是目录树的根目录

|
|_ _Application.pro
|_ _Test.pro
|_ _App/
        |_ _app.pro
|_ _lib/
        |_ _lib.pro

编辑:以下是相关声明:

强烈建议您仅在当前项目的父目录或其子目录中指定路径


文档中写道:“强烈建议您只指定当前项目父目录或其子目录中的路径。”谢谢@Jens,如果您有链接,我会将其添加到我的答案中。谢谢,我已经看过了,但一直在掩饰它。我发现的一个解决方案是为测试文件夹下的那些LIB创建symblink
#Test.pro 


TEMPLATE = subdirs
SUBDIRS +=  Test \
            lib

#subdirs
lib.file = $${PWD}/../lib/lib.pro
app.file = $${PWD}/TestSuite/Test.pro

#dependecies
Test.depends  =  lib

QMAKE_CLEAN += $${OUT_PWD}/Makefile*
|
|_ _Application.pro
|_ _Test.pro
|_ _App/
        |_ _app.pro
|_ _lib/
        |_ _lib.pro