Создатель Qt по умолчанию статически или динамически связывает библиотеки? - программирование
Подтвердить что ты не робот

Создатель Qt по умолчанию статически или динамически связывает библиотеки?

Я разрабатываю приложение с закрытым исходным кодом и делаю это в соответствии с LGPL. Мне приходится динамически связывать библиотеки Qt с моим приложением. Qt делает это по умолчанию или мне нужно предпринять шаги для этого? Если это так, как мне это сделать?

4b9b3361

Ответ 1

Qt использует динамическое связывание по умолчанию.

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

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

LGPL - это не только то, что библиотека должна предоставляться вместе с вашими двоичными файлами, но также указывать, как ваши пользователи могут создавать часть LGPL. Если вы сами компилируете Qt и не используете предварительно скомпилированные двоичные файлы с сайта, вы должны задокументировать эту часть своей конфигурации сборки в своем выпуске!

Как только вы получите что-то, запущенное в вашей программе, приступайте к подготовке версии выпуска для среды без разработчика без установки Qt. Ваша программа должна завершиться неудачно, как только вы удалите библиотеки DLL, которые вы должны скопировать по вашей программе (или в любом другом формате, используемом вашей ОС).

Ответ 2

Он делает это по умолчанию, статическая привязка, по-видимому, весьма привлекательна, судя по многим вопросам на сайте, касающимся этого.