مشروع QTCreator مع libs متعددة و exe واحد
سؤال
كما قلت في سؤال سابق ، أخطط لتنفيذ مشروع 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 التي تحافظ على الترتيب الذي أدرجته بها في جميع الظروف.