【发布时间】:2020-11-09 15:35:05
【问题描述】:
我遇到了很多类似的帖子,但没有一个对我有帮助。
我有一个包含应用程序和测试的项目。 App 和 test 都依赖于一个公共库(这是应用程序的子模块)。这是我的项目结构。
|
|_ _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*
应用程序编译得很好,但是当我在 test 上运行 make 时,它会抛出 No rule to make target lib.pro required by Test.pro Stop 错误。
如果我在 TestSuite 下复制 lib 文件,那么它可以完美运行。那么 subdirs 是否必须是当前应用程序的子目录?
【问题讨论】: