如何使用相对子目录构建阴影?

时间:2015-07-24 08:21:11

标签: qt qt-creator qmake

我试图将SUBDIR qmake项目与相关子目录一起使用:

TEMPLATE = subdirs
SUBDIRS = app ../lib1

当QT创建者使用" shadow build"构建此项目时,这意味着在另一个目录中,它以这种方式放置文件的输出:

Shadow-Build-Directory/
    app/
        main.obj
        ...

问题是因为我的subdir是相对的,它使用相同的输出相对路径,试图将 lib1 构建在Shadow-Build-Directory/../lib1中!

我该如何避免这种情况?

谢谢。

编辑:我使用的是最新的Qt 5.5。

1 个答案:

答案 0 :(得分:0)

新答案:我做了一些测试,并且在根项目之外似乎是qmake的一个大问题:$$ shadowed()不返回任何内容(如文档中所述,不在源代码树),由于同样的原因,根项目目录中的.qmake.conf(未记录的功能)未在lib1项目中加载。

我认为解决问题的方法是将lib1保留为独立项目,一劳永逸地构建库。然后在每个项目中包含对lib1的二进制文件和标题的引用。

甚至可以使用qmake功能实现自动化: 在每个项目中,您都要给出lib1正确编写的功能的路径,然后添加

CONFIG += lib1

会自动为您的项目配置包含路径和链接指令。

旧答案: 现在不能尝试,但我猜是

DESTDIR = $$shadowed($$PWD)/lib1
lib.pro文件中的

可以解决您的问题。