如何解决qmake:警告:没有规则可以使目标停止
我遇到了很多类似的帖子,但没有一个对我有帮助。
我有一个包含应用程序和测试的项目。应用程序和测试都依赖于一个公共库(它是应用程序的子模块)。这是我的项目结构。
|
|_ _Application.pro
|_ _App/app.pro
|_ _lib/lib.pro
|_ _TestSuite/
|_ _Test.pro
#Application.pro
TEMPLATE = subdirs
SUBDIRS += app \
lib
#subdirs
lib.file = $${PWD}/lib/lib.pro
app.file = $${PWD}/App/app.pro
#dependecies
app.depends = lib
QMAKE_CLEAN += $${OUT_PWD}/Makefile*
#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*
应用程序编译正常,但是当我在测试中运行make时,它会抛出没有任何规则可以使Test.pro Stop所需的目标lib.pro停止错误。
如果我在TestSuite下复制lib文件,则它可以完美运行。那么强制 subdirs 应该是当前应用程序的子目录吗?
解决方法
尽管我目前似乎无法在文档中找到它,但我至少发现了一个bug report,其中指出使用subdirs
模板的.pro文件不应使用指向上方的目录在目录结构中。您的subdirs .pro文件应该是目录树的根。
|
|_ _Application.pro
|_ _Test.pro
|_ _App/
|_ _app.pro
|_ _lib/
|_ _lib.pro
编辑:以下是相关的documentation,其内容是:
强烈建议您仅在当前项目的父目录或其子目录中指定路径。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。