34

我正在编写一个小型 qt 应用程序套件,其中包含一组在同一组文件上工作的小程序。它们是这样组织的:

/
  app1/
    main.cpp
  app2/
    main.cpp
  app3/
    main.cpp
  common/
    project.h
    project.cpp
    somemore.h
    somemore.cpp
  appsuite.pro

当我这样做时qmake && make,我希望构建以下二进制文件:

  • 应用程序1/应用程序1
  • 应用程序2/应用程序2
  • 应用程序3/应用程序3

我怎么写appsuite.pro才能像这样工作?
我听说过一些关于.pri文件的事情,但我不知道如何在我的“情况”中使用它们。

帮助表示赞赏,
jrh

4

2 回答 2

36

一种方法是为每个子目录创建一个 .pro 文件。

appsuite.pro:

TEMPLATE = subdirs
SUBDIRS = common app1 app2 app3
app1.depends = common
app2.depends = common
app3.depends = common

app1/app1.pro:

TARGET = app1
SOURCES = main.cpp
INCLUDEPATH += ../common
LIBS += -L../common -lcommon

common.pro 文件应该构建一个静态库,然后您可以链接到二进制文件。

常见/common.pro:

TEMPLATE = lib
CONFIG = staticlib
SOURCES = project.cpp more.cpp
HEADERS = project.h more.h
于 2009-10-08T15:44:59.080 回答
10

一种方法是创建您的全局项目appsuite.pro,如下所示:

TEMPLATE = subdirs
SUBDIRS = app1 app2 app3

子项目app1.proapp2.pro应该单独为这些应用程序创建,并依赖于 common/ 子目录

您还可以在 appsuite.pro 中指定其他依赖项,例如如果 app1 依赖于 app2,则为:

app1.depends = app2
于 2009-10-08T15:46:26.927 回答