سؤال

أقوم بتطوير تطبيق قائم على QT وعندما أستخدم MacDeployqt على الحزمة ، لا يتم نسخ المكونات الإضافية QT إلى الحزمة.

ومع ذلك ، إذا قمت بتشغيله للمرة الثانية ، فهي كذلك. بالإضافة إلى ذلك ، "يتم نشر البرنامج المساعد SVG Icon إذا كان التطبيق يستخدم وحدة QTSVG." غير ممتلئ - لا يستخدم طلبي QTSVG ولكن لم يتم نسخ المكون الإضافي/المساعد.

حاولت تشغيله باستخدام -Verbose = 3 ، والخطوط الأخيرة هي:

Log: Created configuration file: "silverlock.app/Contents/Resources/qt.conf" 
Log: This file sets the plugin search path to "silverlock.app/Contents/PlugIns" 

من ما تقوله الرسالة الأخيرة ، يبدو أنه يهدف إلى مواصلة الجري ، لكنه لم يفعل - كما لو كانت قد تحطمت.

لماذا يحدث هذا؟ عملت MacDeployqt من قبل لي من قبل بدون مشكلة.

استخدام:

  • QT 4.6
  • QT Creator 2.0
  • ليوبارد 10.5.8
هل كانت مفيدة؟

المحلول

تكمن المشكلة في الأسطر 355-365 من shared.cpp في مصدر MacDeployqt:

while (frameworks.isEmpty() == false) {
    const FrameworkInfo framework = frameworks.takeFirst();
    copiedFrameworks.append(framework.frameworkName);

    // Get the qt path from one of the Qt frameworks;
    if (deploymenInfo.qtPath.isNull() && framework.frameworkName.contains("Qt") 
        && framework.frameworkDirectory.contains("/lib"))
    {
            deploymenInfo.qtPath = framework.frameworkDirectory;
            deploymenInfo.qtPath.chop(5); // remove "/lib/"
    }

يتم أخذ الاسم الأول الإطار/dylib في الحزمة التي تحتوي على "QT" باسمها لتحديد مسار البرنامج المساعد. نظرًا لأن اسم الإطار الأول/dylib في حزمة بلدي كان "Qtsolutions_QtsingLeApplication -2.6" ... تحصل على الصورة. لذلك أفترض أن الحل البديل هو إعادة تسمية Dylib إلى "QSA-2.6.dylib" أو شيء من هذا القبيل.

باختصار: تأكد من عدم وجود أسماء الإطار والمكتبات "QT" أو ستواجه مشكلات مع MacDeployqt.

نأمل أن تساعد هذه الإجابة شخصًا ما لديه نفس المشكلة.

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