Discussion:
[Qt-creator] QtC Runtime issue with 2 Qt version installed
Christian Gagneraud
2018-08-06 03:21:07 UTC
Permalink
Hi there,

I build Qt and QtC-4.7 myself, the first version of Qt (5.6) is on the
loader path (using ld.so.conf) and is part of my dev environement, the
second version of Qt (5.9) is installed beside QtC and is not on the
loader path (QtC 4.7 requires Qt>=5.9).

I originally had LD_LIBRARY_PATH pointing to Qt-5.6, but then QtC
refused to start because libqxcb.so (Qt 5.9) was picking up it's
dependencies from Qt-5.6.
I use Qt plugin loading debug and ldd, both pointed me to the same direction.
I then realised that using ld.so.conf worked around the problem for
Qt's own plugins, but i still have this problem with QtC's
libexec/clangbackend, the loader resolves it's dependencies to the
"other" Qt install (5.6, on the loader path).

If i'm not wrong, when i build Qt LD_LIBRARY_PATH is set and point to
Qt-5.6, but i use Qt-5.9's qmake to configure QtC.

Is there a way to force all these binaries to only rely on a reliable
rpath, where Qt-5.9 will have proiority?

Here is what I have (Qt-5.6 is installed in /opt/navico-sdk, Qt-5.9
and QtC are installed in /opt/navico-sdk/ide):

$ patchelf --print-rpath /opt/navico-sdk/ide/bin/qtcreator
$ORIGIN:$ORIGIN/..:$ORIGIN/../lib/qtcreator:/opt/navico-sdk/ide/lib
$ patchelf --print-rpath /opt/navico-sdk/ide/libexec/qtcreator/clangbackend
$ORIGIN/../../lib/qtcreator:$ORIGIN/../../lib/qtcreator/plugins:$ORIGIN:$ORIGIN/..:$ORIGIN/../lib/qtcreator:/opt/navico-sdk/lib:/opt/navico-sdk/ide/lib

QtCreator has no loader path issues, but clangbackend has.
That's weird.

I would like to find a proper solution before starting to do `patchelf
--set-rpath`... That would be cleaner IMHO. :)

Any point out?

Chris
Henry Skoglund
2018-08-06 04:12:38 UTC
Permalink
Post by Christian Gagneraud
Hi there,
I build Qt and QtC-4.7 myself, the first version of Qt (5.6) is on the
loader path (using ld.so.conf) and is part of my dev environement, the
second version of Qt (5.9) is installed beside QtC and is not on the
loader path (QtC 4.7 requires Qt>=5.9).
I originally had LD_LIBRARY_PATH pointing to Qt-5.6, but then QtC
refused to start because libqxcb.so (Qt 5.9) was picking up it's
dependencies from Qt-5.6.
I use Qt plugin loading debug and ldd, both pointed me to the same direction.
I then realised that using ld.so.conf worked around the problem for
Qt's own plugins, but i still have this problem with QtC's
libexec/clangbackend, the loader resolves it's dependencies to the
"other" Qt install (5.6, on the loader path).
If i'm not wrong, when i build Qt LD_LIBRARY_PATH is set and point to
Qt-5.6, but i use Qt-5.9's qmake to configure QtC.
Is there a way to force all these binaries to only rely on a reliable
rpath, where Qt-5.9 will have proiority?
Here is what I have (Qt-5.6 is installed in /opt/navico-sdk, Qt-5.9
$ patchelf --print-rpath /opt/navico-sdk/ide/bin/qtcreator
$ORIGIN:$ORIGIN/..:$ORIGIN/../lib/qtcreator:/opt/navico-sdk/ide/lib
$ patchelf --print-rpath /opt/navico-sdk/ide/libexec/qtcreator/clangbackend
$ORIGIN/../../lib/qtcreator:$ORIGIN/../../lib/qtcreator/plugins:$ORIGIN:$ORIGIN/..:$ORIGIN/../lib/qtcreator:/opt/navico-sdk/lib:/opt/navico-sdk/ide/lib
QtCreator has no loader path issues, but clangbackend has.
That's weird.
I would like to find a proper solution before starting to do `patchelf
--set-rpath`... That would be cleaner IMHO. :)
Any point out?
Chris
Morning,

is there any difference if launch Qt Creator using the qtcreator.sh
script (it's in the same bin dir as qtcreator)?

Rgrds Henry
Christian Gagneraud
2018-08-06 04:16:00 UTC
Permalink
Post by Henry Skoglund
Morning,
is there any difference if launch Qt Creator using the qtcreator.sh script
(it's in the same bin dir as qtcreator)?
It's not installed by default, I hoped i could do without.
I've never use it when i develop using Qt/QtC installed with the
online installer.


Chris

Loading...