Can't find libQt5Core lib
-
@SGaist ok, I built Qt 5.9.7 with options:
-verbose \ -nomake tests \ -nomake examples \ -no-use-gold-linker \ -no-opengl \ -no-dbus \ -no-glib \ -no-icu \ -rpath
and the target Qt application on the embedded device did found the Qt libs, but I've got another exception:
./qt_c: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.28' not found (required by /ta/libQt5Core.so.5)
sure, version of glib on the target device is 2.23, but Qt was configured without GLIB support. Why Qt still require this library?
well, as latest results with same cross-compilations process (e.g. same tools, compiler, QtCreator settings, etc):
- cross-compiled app with Qt 5.12.0 can't find self Qt libraries
- cross-compiled app with Qt 5.9.7 can find self Qt libraries, but can't work without GLIB < v2.28 (even configured without glib support)
-
And why are you not deploying the Qt5Core library since you already deploy the others ?
-
@SGaist as I told before I did copy Qt libs with application to the target embedded device (as you can see the folder /ta512 already contains all needed Qt libs and executable application), also I did set value of LD_LIBRARY_PATH to /ta512 before application has been started.
-
That's clear, but from your last test, why only these three libs and not QtCore ?
-
The question is: since you are deploying 3 Qt libraries already, why not the Qt5Core ?
-
Yes it is.
-
@SGaist because the target application is looking for the libQt5Core.so.5, not for libQt5Core.so
howewer I'll try to do copy of all aliases: libQt5Core.so, libQt5Core.so.5 and libQt5Core.so.5.12.0
thanks for hint!
and happy New Year ;) -
If you want to be sure the loader finds the correct library where you put them, then yes, copy all the aliases up to the library itself.
-
@SGaist I did copy for each needed alias, but nothing changes:
# export LD_LIBRARY_PATH=/ta_20190102115904/qt5lib # ls $LD_LIBRARY_PATH libQt5Core.so libQt5Gui.so libQt5Widgets.so libQt5Core.so.5 libQt5Gui.so.5 libQt5Widgets.so.5 libQt5Core.so.5.12.0 libQt5Gui.so.5.12.0 libQt5Widgets.so.5.12.0 # cd /ta_20190102115904 # ./qt_c ./qt_c: /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5: version `Qt_5' not found (required by ./qt_c)
Ok, I did remove system version:
# mv /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.orig # mv /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.5 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.5.orig # mv /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.5.1 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.5.1.orig # ./qt_c ./qt_c: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
(there is no alias /usr/lib/arm-linux-gnueabihf/libQt5Core.so)
All binaries have a right arch, I think:# file qt5lib/libQt5Core.so qt5lib/libQt5Core.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (GNU/Linux), dynamically linked, for GNU/Linux 4.11.0, not stripped # file qt5lib/libQt5Core.so.5 qt5lib/libQt5Core.so.5: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (GNU/Linux), dynamically linked, for GNU/Linux 4.11.0, not stripped # file qt5lib/libQt5Core.so.5.12.0 qt5lib/libQt5Core.so.5.12.0: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (GNU/Linux), dynamically linked, for GNU/Linux 4.11.0, not stripped # file qt_c qt_c: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, not stripped
cross compiled Qt application don't want to use cross-compiled Qt libraries.
I don't understand what's wrong :(I'll try to use a previous version of the toolchain