Qt5 deploy проекта на другую рабочую станцию.



  • Добрый день. входные данные:
    Рабочая станция: 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 ? Я так понимаю совместимость снизу вверх присутствует ?



  • можно ли это как то обойти или единственный выход собрать приложение на более старой ОС , например 12 ubuntu ?

    Второй способ существенно проще

    Я так понимаю совместимость снизу вверх присутствует ?

    Да


 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.