سؤال

لقد بدأت للتو في استخدام كيو تي ولاحظت أنه يستخدم أداة صنعها الخاصة ، Qmake.

  • لماذا تستخدم QT أداة صنعها الخاصة؟
  • هل هناك شيء خاص يمنعه من استخدام أداة صنع قياسية؟
  • هل دعا Qmake مجلس التعاون الخليجي برنامج التحويل البرمجي C ++؟
هل كانت مفيدة؟

المحلول

يستخدم QT QMake لدعم الإضافات المختلفة لـ QT ، بما في ذلك "MOC ، مترجم Meta-Object" (الذي يوفر الإشارات والفتحات) ، "UIC ، مترجم واجهة المستخدم" (الذي ينشئ ملفات رأس من ملفات مصمم .ui) ، "RCC ، مترجم الموارد "(الذي يجمع الموارد).

لا يوجد شيء يمنعك من استخدام أي نظام بناء تريده. ومع ذلك ، إنه عمل أكثر بكثير. على سبيل المثال ، تحتاج إلى تشغيل "MOC" على كل ملف رأس يحتوي على فئة تحتوي على إشارات أو فتحات. بشكل عام ، لا ينصح به ، خاصة بالنسبة لشخص بدأ للتو في استخدام QT.

QMake لا يتصل G ++/GCC مباشرة. بدلاً من ذلك ، يقوم QMake بإنشاء ملفات أصلية على النظام الأساسي الحالي. ضمن Linux ، يقوم بإنشاء ملفات GNU قياسية ، تحت Windows ، يمكنه إنشاء ملفات Make Visual ، ضمن Mac OS X ، يمكنها إنشاء ملفات مشروع Xcode. يمكنك بعد ذلك استدعاء نظام البناء الأصلي (إما صنع GNU ، أو MS nmake ، أو Xcodebuild أو أي شيء آخر) ، والذي سيطلق على المترجم الأصلي الخاص بك (G ++/GCC أو أي شيء آخر).

نصائح أخرى

في رأيي ، يعد Qmake رائعًا بالنسبة للمشاريع البسيطة (يمكنك فقط Qmake -project ؛ Qmake ؛ Make) ، ولكنه مروع وغير موثق بما يكفي لمشاريع اللمعية. خاصة تكوين وظيفة QMake هي مزحة.

أفضل أنظمة البناء التي أعرفها هي Cmake و WAF (قائم على Python). في مشاريع QT الخاصة بي ، أستخدم Cmake للقيام بهذه المهمة. تماما مثل kde-guys :)

لدعم نظام الإشارة/الفتحات QT يعتمد على معالج مسبق ومترجم خاص يولد كائنات وسيطة تقوم بالكثير من المعالجة. يشيرون إلى هذا باسم مترجم ميتا أو MOC.

يرى وثيقة QT 5: باستخدام برنامج التحويل البرمجي Meta-Object للتفاصيل.

يعمل MOC (جنبًا إلى جنب مع اثنين من الأدوات الوسيطة الأخرى) بالتزامن مع qmake; ؛ أداة أتمتة الإنشاء التي تنتج Makefiles بتنسيقك الأصلي (VC ++ ، G ++ ، وما إلى ذلك) التي تقوم بإنشاء الملفات الوسيطة التي تم إنشاؤها بواسطة MOC وكذلك جميع ملفات المصدر الخاصة بك في النهائي القابل للتنفيذ.

Qmake تم تصميمه ليكون منصة متقاطعة ومرنة. يمكن أن تتوافق مع Microsoft Visual Studio و Xcode.

يمكنك أن تجد كل شيء في دليل Qmake.

يقوم QMake بإنشاء Makefile بناءً على المعلومات الموجودة في ملف المشروع. يتم إنشاء ملفات المشروع بواسطة المطور ، وعادة ما تكون بسيطة ، ولكن يمكن إنشاء ملفات مشروع أكثر تطوراً للمشاريع المعقدة. يحتوي QMake على ميزات إضافية لدعم التطوير مع QT ، بما في ذلك قواعد إنشاء MOC و UIC تلقائيًا. يمكن لـ QMake أيضًا إنشاء مشاريع لـ Microsoft Visual Studio دون مطالبة المطور بتغيير ملف المشروع.

مرتب

أ) لأنه يفعل الكثير وراء الكواليس من أجلك

ب) نعم ، انظر أ)

ج) نعم ، إنها تستدعي G ++ (ولكن يمكن أن تدعم المجمعين الآخرين إذا كان لديك)

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