كيف يمكنني استخدام qmake لبناء ثنائيات متعددة في مشروع واحد؟

StackOverflow https://stackoverflow.com/questions/1538398

  •  20-09-2019
  •  | 
  •  

سؤال

أنا أكتب مجموعة تطبيقات 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top