سؤال

كما قلت في سؤال سابق ، أخطط لتنفيذ مشروع QT من VC ++ إلى QTCreator.

يتكون المشروع من 4 مشاريع فرعية: 3 منها هي libs والآخر يصنع EXE. يتم طبقة المشاريع الفرعية ، مما يعني أن كل طبقة لها تبعية وربط الوقت بالبكتريات التي تحتها.

يتم تنظيم الملفات على النحو التالي:

root
  lib1
  lib2
  lib3
  main

لقد أنشأت كل من المشروعات الفرعية في QTCreator من نقطة الصفر. يحتوي كل مجلد على ملف Pro مع نفس الاسم (على سبيل المثال: lib1 -> lib1.pro). باستخدام هذا النهج ، قمت ببناء جميع المشاريع باستثناء آخر مشاريع يجب أن تربط القابلة للتنفيذ. كنت أحصل على أخطاء في الارتباط التي قمت بإصلاحها عن طريق تحرير ملف Pro وإضافة الرمز أدناه:

LIBS +=  ../path/lib1.a \
   ../path/lib2.a \
   ../path/lib3.a

كل شيء على ما يرام ، باستثناء الآن lib3 يشكو من أنه لا يمكن العثور على الرموز من lib2 و lib1. لا يعمل إضافة libs إلى ملف lib2.pro.

لدي شعور بأنني لا أحصل على الطريقة التي يعمل بها QTCreator مع LIBS والهولون التنفيذيون. كيف يمكنك تنظيم مثل هذا المشروع بحيث يجمع وروابط بشكل صحيح؟

هل كانت مفيدة؟

المحلول

بعد العمل على المشكلة أكثر من ذلك ، تذكرت أنه بالنسبة لسلسلة أدوات GCC ، من المهم ترتيب معلمات الارتباط.

عكس إدخالات libs فعلت الحيلة.

نصائح أخرى

سعيد لرؤيتك وجدت الجواب. قد ترغب أيضًا في إضافة:

CONFIG += ordered

إلى ملفات الجذر الخاصة بك. PRO (إنه صالح فقط في ملف تعريف "subdirs"). يجبر Qmake على إنشاء Makefiles التي تحافظ على الترتيب الذي أدرجته بها في جميع الظروف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top