无法在 Mac OS X 插件中加载 Qt jpeg 插件 - @rpath

发布于 2024-12-10 15:35:44 字数 938 浏览 0 评论 0原文

我的 Mac OS X 插件包含一些使用 Qt 的框架。这些框架使用 Qt 的 jpeg 插件 dylib 创建一个显示 jpeg 的 UI。

我使用 install_name_tool 在我的插件中设置 @rpath ,以便它可以位于任何地方。主机应用程序可以很好地找到并加载我的框架,但 Qt jpeg 插件 dylib 将不会在运行时加载。

Qt jpeg 插件的 id 为:

@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 的建议/意见都表示赞赏。谢谢。

My Mac OS X plugin includes some frameworks that use Qt. These frameworks create a UI that displays jpegs using Qt's jpeg plugin dylib.

I use install_name_tool to set @rpath in my plugin so that it can be located anywhere. The host application finds and loads my frameworks fine, but the Qt jpeg plugin dylib won't then load at runtime.

The Qt jpeg plugin's id is:

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

Its dependent Qt shared library list is:

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

When I set QT_DEBUG_PLUGINS to 1, the output from Console is:

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`

If I replace @rpath in the list of dependent libraries with hardcoded locations, everything works fine, but my plugin can't then be located anywhere.

This problem appears to be on Snow Leopard, but not Lion. I'm using Qt 4.6.3.

Any suggestions / advice appreciated on how I get libqjpeg loading successfully. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

胡渣熟男 2024-12-17 15:35:44

我通过使用 install_name_tool 将 rpath 路径名添加到 QtCore 来修复此问题:

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

I fixed this by adding an rpath path name to QtCore using install_name_tool:

install_name_tool -add_rpath @loader_path/../../.. QtCore.framework/Versions/4/QtCore
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文