Добрый день. входные данные:
Рабочая станция: Ubuntu 18.04 Среда разработки Qt5.12.1 Приложение GUI для работы с postgresql
Приложение собирается динамически.
Для переноса на другую рабочую станцию написал небольшое приложение которое берет вывод ldd nameapp разбирает и копирует в папку lib в папке с приложением все необходимые библиотеки. Структура приложения получилась следующая
- Myapp/ - папка приложения
- myapp - приложение
- myapp.sh - скрипт запуска приложения
- lib/ - папка для библиотек
- platforms/ - папка плагинов Qt5
Создал скрипт для запуска приложения в котором основным является указание приложению где брать библиотеки
LD_LIBRARY_PATH=${dirname}/lib
export LD_LIBRARY_PATH
user@UBUNTU18-OVIRT:~/TEST$ ./OMSStatistic.sh
Вывод команды 'ldd myapppname'
linux-vdso.so.1 (0x00007ffe62a4c000)
libQt5Widgets.so.5 => /home/user/TEST/lib/libQt5Widgets.so.5 (0x00007fb897f47000)
libQt5Gui.so.5 => /home/user/TEST/lib/libQt5Gui.so.5 (0x00007fb897721000)
libQt5Sql.so.5 => /home/user/TEST/lib/libQt5Sql.so.5 (0x00007fb8974d9000)
libQt5Core.so.5 => /home/user/TEST/lib/libQt5Core.so.5 (0x00007fb896d46000)
libstdc++.so.6 => /home/user/TEST/lib/libstdc++.so.6 (0x00007fb8969bd000)
libm.so.6 => /home/user/TEST/lib/libm.so.6 (0x00007fb89661f000)
libgcc_s.so.1 => /home/user/TEST/lib/libgcc_s.so.1 (0x00007fb896407000)
libc.so.6 => /home/user/TEST/lib/libc.so.6 (0x00007fb896016000)
libpthread.so.0 => /home/user/TEST/lib/libpthread.so.0 (0x00007fb895df7000)
libGL.so.1 => /home/user/TEST/lib/libGL.so.1 (0x00007fb895b6b000)
libz.so.1 => /home/user/TEST/lib/libz.so.1 (0x00007fb89594e000)
libicui18n.so.56 => /home/user/TEST/lib/libicui18n.so.56 (0x00007fb8954b5000)
libicuuc.so.56 => /home/user/TEST/lib/libicuuc.so.56 (0x00007fb8950fd000)
libicudata.so.56 => /home/user/TEST/lib/libicudata.so.56 (0x00007fb89371a000)
libdl.so.2 => /home/user/TEST/lib/libdl.so.2 (0x00007fb893516000)
libgthread-2.0.so.0 => /home/user/TEST/lib/libgthread-2.0.so.0 (0x00007fb893314000)
libglib-2.0.so.0 => /home/user/TEST/lib/libglib-2.0.so.0 (0x00007fb892ffe000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb898b4b000)
libGLX.so.0 => /home/user/TEST/lib/libGLX.so.0 (0x00007fb892dcd000)
libGLdispatch.so.0 => /home/user/TEST/lib/libGLdispatch.so.0 (0x00007fb892b17000)
libpcre.so.3 => /home/user/TEST/lib/libpcre.so.3 (0x00007fb8928a5000)
libX11.so.6 => /home/user/TEST/lib/libX11.so.6 (0x00007fb89256d000)
libxcb.so.1 => /home/user/TEST/lib/libxcb.so.1 (0x00007fb892345000)
libXau.so.6 => /home/user/TEST/lib/libXau.so.6 (0x00007fb892141000)
libXdmcp.so.6 => /home/user/TEST/lib/libXdmcp.so.6 (0x00007fb891f3b000)
libbsd.so.0 => /home/user/TEST/lib/libbsd.so.0 (0x00007fb891d26000)
librt.so.1 => /home/user/TEST/lib/librt.so.1 (0x00007fb891b1e000)
Вывод команды 'ldd platforms/libqxcb.so'
linux-vdso.so.1 (0x00007ffec8aa4000)
libQt5XcbQpa.so.5 => /home/user/TEST/lib/libQt5XcbQpa.so.5 (0x00007f63a68e2000)
libfontconfig.so.1 => /home/user/TEST/lib/libfontconfig.so.1 (0x00007f63a669d000)
libfreetype.so.6 => /home/user/TEST/lib/libfreetype.so.6 (0x00007f63a63e9000)
libz.so.1 => /home/user/TEST/lib/libz.so.1 (0x00007f63a61cc000)
libQt5Gui.so.5 => /home/user/TEST/lib/libQt5Gui.so.5 (0x00007f63a59a6000)
libQt5DBus.so.5 => /home/user/TEST/lib/libQt5DBus.so.5 (0x00007f63a571a000)
libQt5Core.so.5 => /home/user/TEST/lib/libQt5Core.so.5 (0x00007f63a4f87000)
libGL.so.1 => /home/user/TEST/lib/libGL.so.1 (0x00007f63a4cfb000)
libpthread.so.0 => /home/user/TEST/lib/libpthread.so.0 (0x00007f63a4adc000)
libX11-xcb.so.1 => /home/user/TEST/lib/libX11-xcb.so.1 (0x00007f63a48da000)
libxcb.so.1 => /home/user/TEST/lib/libxcb.so.1 (0x00007f63a46b2000)
libXrender.so.1 => /home/user/TEST/lib/libXrender.so.1 (0x00007f63a44a8000)
libXext.so.6 => /home/user/TEST/lib/libXext.so.6 (0x00007f63a4296000)
libX11.so.6 => /home/user/TEST/lib/libX11.so.6 (0x00007f63a3f5e000)
libm.so.6 => /home/user/TEST/lib/libm.so.6 (0x00007f63a3bc0000)
libxkbcommon-x11.so.0 => /home/user/TEST/lib/libxkbcommon-x11.so.0 (0x00007f63a39b8000)
libxkbcommon.so.0 => /home/user/TEST/lib/libxkbcommon.so.0 (0x00007f63a3779000)
libdl.so.2 => /home/user/TEST/lib/libdl.so.2 (0x00007f63a3575000)
libstdc++.so.6 => /home/user/TEST/lib/libstdc++.so.6 (0x00007f63a31ec000)
libgcc_s.so.1 => /home/user/TEST/lib/libgcc_s.so.1 (0x00007f63a2fd4000)
libc.so.6 => /home/user/TEST/lib/libc.so.6 (0x00007f63a2be3000)
libgthread-2.0.so.0 => /home/user/TEST/lib/libgthread-2.0.so.0 (0x00007f63a29e1000)
libglib-2.0.so.0 => /home/user/TEST/lib/libglib-2.0.so.0 (0x00007f63a26cb000)
libexpat.so.1 => /home/user/TEST/lib/libexpat.so.1 (0x00007f63a2499000)
libpng16.so.16 => /home/user/TEST/lib/libpng16.so.16 (0x00007f63a2267000)
libdbus-1.so.3 => /home/user/TEST/lib/libdbus-1.so.3 (0x00007f63a201a000)
libicui18n.so.56 => /home/user/TEST/lib/libicui18n.so.56 (0x00007f63a1b81000)
libicuuc.so.56 => /home/user/TEST/lib/libicuuc.so.56 (0x00007f63a17c9000)
libicudata.so.56 => /home/user/TEST/lib/libicudata.so.56 (0x00007f639fde6000)
/lib64/ld-linux-x86-64.so.2 (0x00007f63a6e7d000)
libGLX.so.0 => /home/user/TEST/lib/libGLX.so.0 (0x00007f639fbb5000)
libGLdispatch.so.0 => /home/user/TEST/lib/libGLdispatch.so.0 (0x00007f639f8ff000)
libXau.so.6 => /home/user/TEST/lib/libXau.so.6 (0x00007f639f6fb000)
libXdmcp.so.6 => /home/user/TEST/lib/libXdmcp.so.6 (0x00007f639f4f5000)
libxcb-xkb.so.1 => /home/user/TEST/lib/libxcb-xkb.so.1 (0x00007f639f2d9000)
libpcre.so.3 => /home/user/TEST/lib/libpcre.so.3 (0x00007f639f067000)
libsystemd.so.0 => /home/user/TEST/lib/libsystemd.so.0 (0x00007f639ede3000)
libbsd.so.0 => /home/user/TEST/lib/libbsd.so.0 (0x00007f639ebce000)
librt.so.1 => /home/user/TEST/lib/librt.so.1 (0x00007f639e9c6000)
liblzma.so.5 => /home/user/TEST/lib/liblzma.so.5 (0x00007f639e7a0000)
liblz4.so.1 => /home/user/TEST/lib/liblz4.so.1 (0x00007f639e584000)
libgcrypt.so.20 => /home/user/TEST/lib/libgcrypt.so.20 (0x00007f639e269000)
libgpg-error.so.0 => /home/user/TEST/lib/libgpg-error.so.0 (0x00007f639e054000)
user@UBUNTU18-OVIRT:~/TEST$
Как видно из вывода, единственная библиотека которая берется не из моей папки библиотек /lib64/ld-linux-x86-64.so.2 (0x00007fb898b4b000) эта ссылка указывает на библиотеку /lib/x86_64-linux-gnu/ld-2.27.so Это системная библиотека в 18 ubuntu ld-2.27.so в 16 ubuntu ld-2.23.so в Debian 8 ld-2.19.so.
поэтому приложение и не работает на более старых системах. можно ли это как то обойти или единственный выход собрать приложение на более старой ОС , например 12 ubuntu ? Я так понимаю совместимость снизу вверх присутствует ?