كيف يمكنني استخدام qmake لبناء ثنائيات متعددة في مشروع واحد؟
سؤال
أنا أكتب مجموعة تطبيقات qt صغيرة تتكون من مجموعة من البرامج الصغيرة التي تعمل على نفس مجموعة الملفات.ويتم تنظيمهم على النحو التالي:
/ app1/ main.cpp app2/ main.cpp app3/ main.cpp common/ project.h project.cpp somemore.h somemore.cpp appsuite.pro
عندما أفعل qmake && make
, ، أريد بناء الثنائيات التالية:
- التطبيق1/التطبيق1
- التطبيق2/التطبيق2
- التطبيق3/التطبيق3
كيف أكتب appsuite.pro
للعمل مثل هذا؟
لقد سمعت شيئا عن .pri
الملفات، ولكن لم أتمكن من معرفة كيفية استخدامها في "الوضع" الخاص بي.
مساعدة موضع تقدير،
jrh
المحلول
إحدى الطرق للقيام بذلك هي الحصول على ملف .pro لكل دليل فرعي.
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
يجب أن يقوم الملف common.pro بإنشاء مكتبة ثابتة يمكنك بعد ذلك ربطها بالثنائيات.
مشترك/common.pro:
TEMPLATE = lib
CONFIG = staticlib
SOURCES = project.cpp more.cpp
HEADERS = project.h more.h
نصائح أخرى
إحدى الطرق هي إنشاء مشروعك العالمي appsuite.pro
, ، مثله:
TEMPLATE = subdirs
SUBDIRS = app1 app2 app3
المشاريع الفرعية app1.pro
و app2.pro
يجب أيضًا إنشاء تلك التطبيقات وحدها، مع التبعية فيما يتعلق بالدليل المشترك/الفرعي
يمكنك أيضًا تحديد تبعيات أخرى في appsuite.pro، على سبيل المثال إذا كان app1 يعتمد على app2، على النحو التالي:
app1.depends = app2