Хочу собрать приложение на Qt5 которое бы работало на разных дистрибутивах без перекомпиляции.
Взять и скомпилировать все статически не могу ибо LGPL.
Оставлять все динамически слинкованными не вариант, тут даже не факт что возможно будет последние версии Qt5 собрать под Ubuntu 16.04, а возможность запускать софт там нужна.
Думаю попытаться собрать Qt5 динамически но с статически слинкованными библиотеками какими только смогу. Но из-за особенности структуры Qt5 делится на десятки библиотек и при таком подходе будет куча копий одной и той-же библиотеки в каждой Qt5 либе.
Тут я вижу возможные решения:
- Все нужные библиотеки пересобрать так чтоб они не зависели от системных, только друг от друга. Боюсь даже думать об этом, не вариант для меня.
- Слинковать все статические библиотеки в одну динамическую и уже её линковать динамически для каждой Qt5 либы. Проблема в том что я не знаю как это правильно сделать, если это вообще возможно.
- Скомпилировать Qt5 в одну мега-библиотеку и статически к ней слинковать всё остальное. Не верю в то что такое можно легко сделать, если вообще возможно.
- Скомпилировать Qt5 статически, но использую метод из п.2 собрать её в одну динамическую и слинковать всё остальное статически к ней.
- Забить на это так как наступила эра гигабайтных приложений.
Варианты AppImage, Flatpak, Snappy и остальное такое не предлагать.