Подтвердить что ты не робот

Как построить Qt 5 статически

Я работал с Qt Creator 2.6.2 на основе Qt 5.0.1 в среде linux. Приложение отлично работает на компьютере, где я сделал компиляцию, но когда я выполняю его на другом компьютере, я получил такие ошибки, как:

error while loading shared libraries: libQt5WebKitWidgets.so.5: cannot open shared object file: No such file or directory
error while loading shared libraries: libxslt.so.1: cannot open shared object file: No such file or directory

Я нашел несколько решений в этом link (некоторые ссылки мертвы).

Итак, я добавил в мой .pro файл эту строку:

CONFIG += static

Чтобы скомпилировать мой проект статически.

Я думал, что файл, который я получу, будет больше, но у меня одинаковый размер и те же ошибки.

Спасибо.

4b9b3361

Ответ 1

Общие библиотеки Qt не существуют на другом компьютере, на котором вы протестировали его. Поэтому вам нужно либо:

  • Скопируйте совместно используемые библиотеки на другой компьютер. Или...
  • Создайте статическую сборку Qt для связи с вашим приложением.

Недостаточно просто добавить CONFIG += static в ваш .pro файл, вам также нужны статические библиотеки Qt. Итак, чтобы сделать # 2, вам нужно будет получить исходный код Qt и создать его самостоятельно.

Кроме того, Qt лицензируется под LGPL, поэтому вам нужно знать об этом при статической привязке. Есть некоторые люди, которые считают, что LGPL не позволяет статические ссылки (если вы не используете LGPL собственный код) и другие, которые считают, что это так (если вы готовы выпустить объектный код для вашего приложения). Но это еще одно обсуждение.