Details
-
Bug
-
Resolution: Done
-
Not Evaluated
-
Qt Creator 6.0.2
-
None
-
3ba00ac39f (qt-creator/qt-creator/7.0) 3ba00ac39f (qt-creator/qt-creator/master) 3ba00ac39f (qt-creator/tqtc-qt-creator/7.0) 3ba00ac39f (qt-creator/tqtc-qt-creator/master) 3ba00ac39f (qt-creator/tqtc-qt-creator/qds-3.1)
Description
After building Qt Creator from sources with CMake, I get:
$ bin/qtcreator bin/qtcreator: error while loading shared libraries: libQt6Concurrent.t.so.6: cannot open shared object file: No such file or directory $ ldd bin/qtcreator linux-vdso.so.1 (0x00007ffdc99fa000) libExtensionSystem.so.6 => /home/tjmaciei/obj/qt/installed/bin/../lib64/qtcreator/libExtensionSystem.so.6 (0x00007f174f777000) libUtils.so.6 => /home/tjmaciei/obj/qt/installed/bin/../lib64/qtcreator/libUtils.so.6 (0x00007f174f347000) libAggregation.so.6 => /home/tjmaciei/obj/qt/installed/bin/../lib64/qtcreator/libAggregation.so.6 (0x00007f174f33c000) libQt6Concurrent.t.so.6 => not found libQt6Core5Compat.t.so.6 => not found libQt6Widgets.t.so.6 => not found libQt6Gui.t.so.6 => not found libGLX.so.0 => /lib64/libGLX.so.0 (0x00007f174f2f2000) libOpenGL.so.0 => /lib64/libOpenGL.so.0 (0x00007f174f2c5000) libQt6Network.t.so.6 => not found libQt6Core.t.so.6 => not found libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f174f0aa000) libm.so.6 => /lib64/libm.so.6 (0x00007f174efc7000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f174efad000) libc.so.6 => /lib64/libc.so.6 (0x00007f174ed7e000) libQt6Widgets.t.so.6 => not found libQt6Test.t.so.6 => not found libQt6Gui.t.so.6 => not found libQt6Core.t.so.6 => not found libQt6Qml.t.so.6 => not found libQt6Xml.t.so.6 => not found libQt6Network.t.so.6 => not found libQt6Widgets.t.so.6 => not found libQt6Core5Compat.t.so.6 => not found libQt6Gui.t.so.6 => not found libQt6Core.t.so.6 => not found libQt6Core.t.so.6 => not found libX11.so.6 => /lib64/libX11.so.6 (0x00007f174ec32000) libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007f174eb7a000) /lib64/ld-linux-x86-64.so.2 (0x00007f174f7ee000) libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f174eb4f000) libXau.so.6 => /lib64/libXau.so.6 (0x00007f174eb48000)
This happens because the RPATH contains a nonsensical entry:
$ readelf -d bin/qtcreator | grep PATH 0x000000000000001d (RUNPATH) Library runpath: [$ORIGIN/../lib64/qtcreator:$ORIGIN/../lib64/Qt/lib:$ORIGIN/../lib64/qtcreator/plugins]
That "/Qt/lib" is just wrong. It comes from QtCreatorAPIInternal.cmake:
file(RELATIVE_PATH _PLUGIN_TO_LIB "/${_IDE_PLUGIN_PATH}" "/${_IDE_LIBRARY_PATH}") file(RELATIVE_PATH _PLUGIN_TO_QT "/${_IDE_PLUGIN_PATH}" "/${_IDE_LIBRARY_BASE_PATH}/Qt/lib") file(RELATIVE_PATH _LIB_TO_QT "/${_IDE_LIBRARY_PATH}" "/${_IDE_LIBRARY_BASE_PATH}/Qt/lib")
That's hardcoded, instead of guessed from Qt. Since it obviously makes no sense and does not come from inspecting the Qt builds, it can't be right.
CMake config:
-DBUILD_WITH_PCH=OFF -DCMAKE_BUILD_TYPE=Custom -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS='-O3 -march=skylake-avx512 -mprefer-vector-width=256 -maes -mno-rdseed -fdiagnostics-color=always' -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS='-O3 -march=skylake-avx512 -mprefer-vector-width=256 -maes -mno-rdseed -fdiagnostics-color=always' -DCMAKE_EXE_LINKER_FLAGS='-flto=auto' -DCMAKE_INSTALL_LIBDIR=lib64 -DCMAKE_INSTALL_PREFIX=$HOME/obj/qt/installed -DCMAKE_MODULE_LINKER_FLAGS='-Wl,--as-needed -flto=auto' -DCMAKE_SHARED_LINKER_FLAGS='-Wl,-O1 -Wl,--as-needed -flto=auto'
Attachments
For Gerrit Dashboard: QTCREATORBUG-27008 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
394409,2 | Unbreak running Qt Creator: set RPATH properly | 6.0 | qt-creator/qt-creator | Status: DEFERRED | -1 | 0 |
395055,3 | CMake build: Allow adding RPATHs via CMAKE_(BUILD|INSTALL)_RPATH | 7.0 | qt-creator/qt-creator | Status: MERGED | +2 | 0 |