Qt Subdirs,一个项目生成另一个项目中使用的源/头文件

时间:2019-02-25 20:49:46

标签: c++ qt qmake subdirs

我有一个Qt项目,其中包含许多子项目。我遇到一个问题,其中一个项目会生成在其他一些项目中使用的文件(.cpp和.h文件)。这是目录结构的示例:

src
 \- master.pro
 \- project1
     \- project1.pro
      - myHeader.h <generated AFTER project1.pro runs>
      - mySource.cpp <generated AFTER project1.pro runs>
 \- project2
     \- project2.pro <needs to include mySource.cpp>
      - main.cpp <includes myHeader.h>
 \- project3
     \- project3.pro <needs to include mySource.cpp>
      - main.cpp <includes myHeader.h>

更具体一点,上面的project2project3实际上分别是服务器和客户端项目,它们使用RPC调用在两个程序之间进行通信。为了生成以上project2 / 3都需要的RPC文件,我创建了project1来运行midl.exe编译器命令。

如果我先手动编译project1,然后手动编译project2project3,那么一切正常。但是,如果我将这三个项目放入Qt subdirs项目中,并且使project2 / 3依赖于project1,则它将不起作用。问题是,当qmake在project2 / 3上运行时,生成的文件尚不存在,但是这些文件在project1实际编译后确实存在。

那么有没有办法将这三个项目全部放入一个子目录项目中,并以某种方式“推迟”依赖项目的qmake?还是这样做,以便从属项目知道这些文件在qmake时可能不存在,但在编译时将存在?

预先感谢您的任何建议。

修改

更多信息。这是我的master.pro文件的样子

TEMPLATE = subdirs

SUBDIRS += project1 project2 project3

project1.file = $$PWD/project1/project1.pro
project2.file = $$PWD/project2/project2.pro
project2.depends = project1
project3.file = $$PWD/project3/project3.pro
project3.depends = project1

0 个答案:

没有答案