¿Cómo uso qmake para construir múltiples binarios en un mismo proyecto?
Pregunta
Estoy escribiendo una pequeña suite de aplicaciones qt que consiste en un conjunto de pequeños programas que funcionan en el mismo conjunto de archivos. Ellos están organizados así:
/ app1/ main.cpp app2/ main.cpp app3/ main.cpp common/ project.h project.cpp somemore.h somemore.cpp appsuite.pro
Cuando yo qmake && make
, quiero los siguientes binarios que se construirán:
- app1 / app1
- app2 / app2
- app3 / app3
¿Cómo escribo appsuite.pro
para trabajar de esta manera?
He oído algo acerca de los archivos .pri
, pero no pude encontrar la manera de usarlos en mi "situación".
Ayuda apreciado, España JRH
Solución
Una forma de hacerlo es tener un archivo .pro en cada subdirectorio.
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
El archivo common.pro debe construir una biblioteca estática a continuación, puede vincularse con los binarios.
común / common.pro:
TEMPLATE = lib
CONFIG = staticlib
SOURCES = project.cpp more.cpp
HEADERS = project.h more.h
Otros consejos
Una forma es crear su appsuite.pro
global de proyectos, como este:
TEMPLATE = subdirs
SUBDIRS = app1 app2 app3
El app1.pro
subproyectos y app2.pro
también deben ser creados para aquellas aplicaciones solo, con una dependencia con respecto a la común / subdirectorio
También puede especificar otras dependencias en appsuite.pro, por ejemplo, si app1 depende de app2, como:
app1.depends = app2