@vebmaster

Как сделать переносимость Qt приложения?

Написал простейшее приложение на Qt, выводит hello.
Сборку сделал на одной виртуалке с Ubuntu 18.04 и Qt 5.14 установленной с официального сайта qt.
А бинарник запускаю на второй виртуалке с Ubuntu 18.04, но c установленным из репозитория библиотекой версии 5.9.5

Пример действий:
Смотрю недостающие библиотеки, не хватает libQt5Core.so.5
ldd checkOnline
        linux-vdso.so.1 (0x00007ffd227e6000)
        libQt5Core.so.5 => not found
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb1951ea000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb194fd2000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb194be1000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb194843000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fb195776000)


Устанавливаю пакет с нужной либой:
apt install libqt5gui5

Проверяю, нашёл нужную либу, но ругается на потребность более высокой версии:
ldd checkOnline
./checkOnline: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.14' not found (required by ./checkOnline)
        linux-vdso.so.1 (0x00007fffa4d38000)
        libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007f1d46f0e000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1d46b85000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1d4696d000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1d4657c000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1d4635d000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f1d46140000)
        libicui18n.so.60 => /usr/lib/x86_64-linux-gnu/libicui18n.so.60 (0x00007f1d45c9f000)
        libicuuc.so.60 => /usr/lib/x86_64-linux-gnu/libicuuc.so.60 (0x00007f1d458e8000)
        libdouble-conversion.so.1 => /usr/lib/x86_64-linux-gnu/libdouble-conversion.so.1 (0x00007f1d456d7000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1d454d3000)
        libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f1d451bc000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1d44e1e000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f1d4785c000)
        libicudata.so.60 => /usr/lib/x86_64-linux-gnu/libicudata.so.60 (0x00007f1d43275000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f1d43003000)


Запуск:
./checkOnline
./checkOnline: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.14' not found (required by ./checkOnline)


Предполагаю, что можно взять с собой на вторую виртуалку недостающие либы, а какие ещё могут быть варианты?
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
@Wexter
1) Либы вместе с бинарником
2) Сборка под версию из репозитория системы
3) Статическая сборка
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Movicom Москва
от 90 000 до 140 000 ₽
MSP360 Санкт-Петербург
от 80 000 до 130 000 ₽
Speech Analytics Москва
от 150 000 до 200 000 ₽