Вопрос

Я разрабатываю приложение на основе QT, и когда я использую MacdeployQT на пачке, плагины QT не копируются в пучок.

Однако, если я бегу во второй раз, они есть. Кроме того, «плагин Icon SVG развернут, если приложение использует модуль QTSVG». Не заполнено - мое приложение использует QTSVG, но плагин IconEngines / * не скопирован.

Я пытался запустить его с -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 в источнике MACDEPOLDST:

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/"
    }

Первое название Framework / Dylib в вашем комплекте, которое имеет «QT» в его названии, принимается для определения пути плагина. Поскольку имя первого основания / Диалиба в моем пакете было «QTsolutions_QTSingLeplippion-2.6» ... Вы получаете изображение. Поэтому я полагаю, что обходной путь - переименовать Диалиб на «QSA-2.6.dylib» или что-то.

В двух словах: убедитесь, что ваши рамки и имена библиотек не имеют «Qt» в них или вы столкнулись с проблемами с MACDEPLOYQT.

Надеюсь, этот ответ может помочь кому-то, имеющую одну и ту же проблему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top