Почему плагины Qt, скомпилированные как .so, не работают при развертывании в комплекте MacOSX? - PullRequest
2 голосов
/ 05 августа 2011

У меня есть проект CMake для приложения на основе Qt, использующего плагины.Стандартный способ создания плагина - CMake (на всех платформах) - с помощью: ADD_LIBRARY ($ {PROJECT_NAME} MODULE ...) Это создает плагин libxxx.so (вместо libxxx.dylib, если вместо MODULE используется SHAREDвыше).Теперь при работе внутри IDE, такой как Xcode или QtCreator, приложение работает нормально, плагин загружается и работает.Но если я создаю пакет .app, приложение не запускается, говоря «libxxx.so не является допустимым плагином Qt»!Как это могло быть возможно?Может быть, какая-то библиотечная зависимость не найдена, но как я могу это проверить?Я использовал инструмент -L и думаю, что все библиотеки в порядке.

1 Ответ

4 голосов
/ 09 августа 2011

Вам может понадобиться файл "qt.conf" в вашем комплекте, чтобы сообщить Qt, где находятся плагины.

Вы должны прочитать функцию CMake BundleUtilities fixup_bundle и позволить ей делать все это "otool -L"и "install_name_tool" для вас.

См. этот недавний связанный вопрос и ответ о стекопотоке:

CMake: копирование фреймворков в комплект приложений

...