Jak używać qmake do budowania wielu plików binarnych w jednym projekcie?
Piszę mały pakiet aplikacji qt, który składa się z zestawu małych programów, które działają na tym samym zestawie plików. Są one zorganizowane tak:
/ app1/ main.cpp app2/ main.cpp app3/ main.cpp common/ project.h project.cpp somemore.h somemore.cpp appsuite.pro
Kiedy zrobię qmake && make
, chcę, aby powstały następujące binaria:
- app1 / app1
- app2 / app2
- app3 / app3
Jak napisać appsuite.pro
aby tak pracować?
Słyszałem coś o plikach .pri
, ale nie mogłem rozgryźć, jak ich użyć w mojej "sytuacji".
Pomoc doceniane,
jrh
2 answers
Jednym ze sposobów jest posiadanie pliku. pro w podkatalogu.
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
The common.pro plik powinien zbudować statyczną bibliotekę, którą można następnie połączyć do plików binarnych.
Common / common. pro:
TEMPLATE = lib
CONFIG = staticlib
SOURCES = project.cpp more.cpp
HEADERS = project.h more.h
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-20 20:43:13
Jednym ze sposobów jest stworzenie globalnego projektu appsuite.pro
, Tak:
TEMPLATE = subdirs
SUBDIRS = app1 app2 app3
Podprojekty app1.pro
i app2.pro
powinny być również tworzone tylko dla tych aplikacji, z zależnością dotyczącą wspólnego / podkatalogu
Możesz także określić inne zależności w appsuite.pro na przykład, jeśli app1 zależy od app2, jako:
app1.depends = app2
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-08 15:46:26