Как собрать Qt проект под другую машину?

Рейтинг: 0Ответов: 1Опубликовано: 03.02.2023

Собираю бинарь на своей машине, загружаю на сервер(другая машина), не запускается. Заявляет мне :

/usr/local/lib/libQt5Core.so.5: version `Qt_5.15' not found

Говорю ему:

qmake -v

qmake version 3.1 у обеих машин, а вот что касается Qt version - версии разнятся.

Там qt5.12 у меня 5.15, хотя устанавливал одинаково через apt - неясно как так вышло, но как-то вышло. install, update, upgrade пробовал В интернете нашел, что все используют тулзу MaintenanceTool и она должна быть в корне qt, но у меня её в /usr/bin/x86-64-linux-gnu/qt... её нет нигде.

Казалось бы, тривиальная тема, но чего-то я уже зарылся, может есть какой-то нормальный, автоматизированный путь?
linux
сервер ubuntu 20.04 lts
моя машина ubuntu 22.04 lts

Вероятно поможет собрать на моей машине под другой Qt, но я пока что только разбираюсь с этим.Да и это такое себе решение

Ответы

▲ 0Принят

Ответ такой:
Собирайте исходники на тех версиях, на которых вы собираетесь запускаться.(В крайнем случае собирайте на более старой версии). Это один из самых простых и верных способов(Но он не единственный).

Я сделал такие действия :

  • использовал утилиту python qmake2cmake:
python -m pip install qmake2cmake
qmake2cmake_all ~/projects/myapp --min-qt-version 3.1
  • Если у вас ругается на DISTFILES просто закомментите их на время и запустите заново.

  • После этого вы получаете CMake файл.

  • Дело за малым - исходники перенесите на нужную машину, создавайте папку bin в исходниках, в ней cmake ../, потом make(тоже в папке bin, но если ругается на пути разныето можно и в папке с исходниками, просто там немного захламиться файлами)

  • Конкретно у меня возникла проблема с qt_add_executable , замените просто на add_executable и перезапустите cmake и make.

  • Готово, в директории, в которой вы запускали make и лежит ваш собранный проект. Не забудьте удалить исходники!