Как мне использовать qmake для сборки нескольких двоичных файлов в одном проекте? - PullRequest
33 голосов
/ 08 октября 2009

Я пишу небольшой набор приложений qt, который состоит из набора небольших программ, работающих с одним и тем же набором файлов. Они организованы так:

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

Когда я делаю qmake && make, я хочу, чтобы были построены следующие двоичные файлы:

  • app1 / app1
  • app2 / app2
  • app3 / app3

Как мне написать appsuite.pro для такой работы?
Я что-то слышал о .pri файлах, но я не мог понять, как использовать их в моей «ситуации».

Помощь оценена,
JRH

Ответы [ 2 ]

33 голосов
/ 08 октября 2009

Один из способов сделать это - иметь файл .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
9 голосов
/ 08 октября 2009

Один из способов - создать глобальный проект appsuite.pro, например:

TEMPLATE = subdirs
SUBDIRS = app1 app2 app3

Подпроекты app1.pro и app2.pro также должны быть созданы только для этих приложений с зависимостью относительно общего / подкаталога

Вы также можете указать другие зависимости в appsuite.pro, например, если app1 зависит от app2, например:

app1.depends = app2
...