Come si usa qmake di costruire più binari in un unico progetto?
Domanda
Sto scrivendo una piccola suite di app qt che si compone di un insieme di piccoli programmi che funzionano sullo stesso set di file. Sono organizzati in questo modo:
/ app1/ main.cpp app2/ main.cpp app3/ main.cpp common/ project.h project.cpp somemore.h somemore.cpp appsuite.pro
Quando faccio qmake && make
, voglio i seguenti file binari da costruire:
- app1 / app1
- app2 / app2
- APP3 / APP3
Come faccio a scrivere appsuite.pro
a lavorare in questo modo?
Ho sentito qualcosa sui file .pri
, ma non riuscivo a capire come usarli nella mia "situazione".
Guida apprezzato,
JRH
Soluzione
Un modo per farlo è quello di avere un file .pro per ogni sottodirectory.
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
Il file common.pro deve costruire una libreria statica è quindi possibile collegare nelle file binari.
common / common.pro:
TEMPLATE = lib
CONFIG = staticlib
SOURCES = project.cpp more.cpp
HEADERS = project.h more.h
Altri suggerimenti
Un modo è quello di creare il appsuite.pro
progetto globale, in questo modo:
TEMPLATE = subdirs
SUBDIRS = app1 app2 app3
Il app1.pro
sottoprogetti e app2.pro
dovrebbero essere creati anche per le applicazioni da solo, con una dipendenza per quanto riguarda il comune / sottodirectory
È inoltre possibile specificare altre dipendenze in appsuite.pro, per esempio se app1 dipende app2, come:
app1.depends = app2