[Interest] Plugin library load conflicts

Scott Carver scott at artificia.org
Sat Feb 10 01:08:03 CET 2018


I'm running in to an issue with a QT-based Mac app, where the Qt frameworks
and plugins are bundled, hoping for some guidance... It looks like I'm
seeing something like this:

1. On the target mac system, with QT installed at e.g.
/usr/local/Cellar/qt/5.10.0 (same version as the one bundled in the app)...
2. At application launch time, the app attempts to load bundled plugins,
and then attempts to load plugins from the installed Qt location at
/usr/local/Cellar/qt/5.10.0
3. Installed plugins are linked to installed copies of the Qt frameworks
(e.g. /usr/local/Cellar/qt/5.10.0/lib/QtWidgets.framework). When the plugin
is loaded, these installed Qt frameworks are loaded as well.
4. Since the *bundled* Qt frameworks have already been loaded, we're now
loading duplicate frameworks, causing the requisite "You might be loading
two sets of Qt binaries into the same process" and related errors.
Everything *appears* to function okay, but regardless this duplicate
frameworks scenario is not a good one to be in.

I'm already using qt.conf to specify the bundled plugins directory, but I
don't see a way to SKIP loading plugins in the installed location.
Moreover, even if I could skip globally installed plugins, this feels
wrong. The point of plugins is that they can be conditionally present and
loaded on a target system - if it were a requirement that non-bundled
plugins NEVER be loaded on Mac (or presumably Windows, since bundling Qt
libraries is common there as well), it seems like they'd simply never work
as intended. This makes me think that I'm doing something wrong w/r/t app
packaging - but what?

This appears to be a new-ish issue as of 5.9 or 5.10 - builds with previous
versions of Qt did not seem to exhibit this problem.

Thx much,
Scott
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20180210/af57a31b/attachment.html>


More information about the Interest mailing list