سؤال

لدي مشروع C++ كبير يتضمن:

  • 4 تطبيقات
  • أكثر من 50 مكتبة
  • أكثر من 20 مكتبة تابعة لجهات خارجية

يستخدم المشروع QMake (جزء من Qt الخاص بـ Trolltech) لإنشاء نسخة الإنتاج على Linux، لكنني كنت أجرب بنائه على MacOS.

يمكنني البناء على MacOS باستخدام QMake بشكل جيد ولكني أواجه مشكلة في إنتاج التطبيق النهائي.فهو يحتاج إلى جمع جميع أطر عمل الطرف الثالث والمكتبات الديناميكية وجميع المكتبات الديناميكية للمشروع والتأكد من عثور التطبيق عليها.

لقد قرأت عبر الإنترنت عن استخدام install_name_tool ولكني كنت أتساءل عما إذا كانت هناك عملية لأتمتة ذلك.

(ربما تكون الإجابة هي استخدام XCode، راجع السؤال ذي الصلة، ولكن قد تواجه مشكلات في إنشاء uic وmoc)

شكرًا

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

المحلول

أنا متأكد من أن هذا يمكن أن يكون مفيدًا جدًا لك:

dployqt

أتمنى أن يساعدك هذا !

نصائح أخرى

لدينا نفس المشكلة في Last.fm، لقد نظرت إلى DeployQt ولم يكن هناك فائدة كبيرة إذا كان لديك مكتبات تابعة لجهات خارجية.في النهاية، قمت بكتابة برنامج Perl النصي الذي يقوم بإنشاء ملف Makefile، والذي يمكنك استخدامه لإنشاء .app و/أو .dmg.

لقد قمت بتحميله هنا: http://www.methylblue.com/detritus/QMake.dmg/

لاستخدامه، أضف هذا إلى الملف الاحترافي لتطبيقك:

 macx*:!macx-xcode:release {
     system( QT=\'$$QT\' QMAKE_LIBDIR_QT=\'$$QMAKE_LIBDIR_QT\' $$ROOT_DIR/common/dist/mac/Makefile.dmg.pl $$DESTDIR $$VERSION $$LIBS > Makefile.dmg )
     QMAKE_EXTRA_INCLUDES += Makefile.dmg   
}

أنا متأكد من أنها ليست قابلة للنقل بالكامل بعد، ولكن سيكون من الجيد أن يستخدمها شخص آخر ويرى ما إذا كان الأمر كذلك.

هذا هو في الأساس الإصدار الرسمي الأول لهذا الكود، لذا يرجى إرسال تقارير الأخطاء إليّ، وكذلك التحسينات.شكرًا.

لقد تجنبت هذه المشكلة تمامًا من خلال إنشاء تطبيق Qt الخاص بي بشكل ثابت على OS X.قد لا يكون ذلك عمليًا بالنسبة لك بالرغم من ذلك.

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