Не удается загрузить плагин Qt jpeg в плагин Mac OS X - @rpath - PullRequest
0 голосов
/ 18 октября 2011

Мой плагин для Mac OS X включает некоторые фреймворки, использующие Qt.Эти фреймворки создают пользовательский интерфейс, который отображает jpegs, используя плагин Qt jpeg dylib.

Я использую install_name_tool для установки @rpath в моем плагине, чтобы он мог быть расположен где угодно.Хост-приложение прекрасно находит и загружает мои фреймворки, но dylib плагина Qt jpeg не будет загружаться во время выполнения.

Идентификатор плагина Qt jpeg:

@rpath/qt/plugins/imageformats/libqjpeg.dylib

Его зависимый общий QtСписок библиотек:

@rpath/QtGui.framework/Versions/4/QtGui
@rpath/QtCore.framework/Versions/4/QtCore

Когда я устанавливаю QT_DEBUG_PLUGINS в 1, вывод из консоли будет:

QFactoryLoader::QFactoryLoader() looking at "/Users/Robin/MyPlugin.plugin/Contents/Frameworks/qt/plugins/imageformats/libqjpeg.dylib" 
"Cannot load library /Users/Robin/MyPlugin.plugin/Contents/Frameworks/qt/plugins/imageformats/libqjpeg.dylib: " 
not a plugin`

Если я заменю @rpath в списке зависимых библиотек с жестко закодированными расположениями, все работает нормально, но мой плагин не может быть нигде расположен.

Эта проблема, похоже, на Snow Leopard, но не на Lion.Я использую Qt 4.6.3.

Любые предложения / советы по поводу успешной загрузки libqjpeg.Благодаря.

1 Ответ

0 голосов
/ 19 октября 2011

Я исправил это, добавив имя пути rpath в QtCore, используя install_name_tool:

install_name_tool -add_rpath @loader_path/../../.. QtCore.framework/Versions/4/QtCore
...