Como uso o QMake para criar vários binários em um único projeto?
Pergunta
Estou escrevendo um pequeno conjunto de aplicativos QT que consiste em um conjunto de pequenos programas que funcionam no mesmo conjunto de arquivos. Eles estão organizados assim:
/ app1/ main.cpp app2/ main.cpp app3/ main.cpp common/ project.h project.cpp somemore.h somemore.cpp appsuite.pro
Quando eu faço qmake && make
, Eu quero que os seguintes binários sejam construídos:
- App1/App1
- App2/App2
- APP3/APP3
Como eu escrevo appsuite.pro
trabalhar assim?
Eu ouvi algo sobre .pri
arquivos, mas não consegui descobrir como usá -los na minha "situação".
Ajuda apreciado,
jrh
Solução
Uma maneira de fazer isso é ter um arquivo .pro por subdiretório.
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
O arquivo Common.Pro deve criar uma biblioteca estática que você possa vincular aos binários.
Common/Common.pro:
TEMPLATE = lib
CONFIG = staticlib
SOURCES = project.cpp more.cpp
HEADERS = project.h more.h
Outras dicas
Uma maneira é criar seu projeto global appsuite.pro
, assim:
TEMPLATE = subdirs
SUBDIRS = app1 app2 app3
Os subprojetos app1.pro
e app2.pro
também deve ser criado apenas para esses aplicativos, com uma dependência em relação ao comum/ subdiretório
Você também pode especificar outras dependências no appsuite.pro, por exemplo, se o App1 depende do App2, como:
app1.depends = app2