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

 33
Author: jrharshath, 2009-10-08

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
 32
Author: PiedPiper,
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
 9
Author: RedGlyph,
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