Qt. Статическая линковка?
От: Аноним  
Дата: 31.05.09 10:17
Оценка:
Делаю приложение под Windows на Qt4.5, QtCreator (все самое последнее). Можно ли библиотеки QtCore4.dll, QtGui4.dll и т.д. статически прилинковать к exe как это делается в MFC, или их надо явно включать в дистрибутив?

21.01.10 13:07: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: Qt. Статическая линковка?
От: Аноним  
Дата: 31.05.09 13:36
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Делаю приложение под Windows на Qt4.5, QtCreator (все самое последнее). Можно ли библиотеки QtCore4.dll, QtGui4.dll и т.д. статически прилинковать к exe как это делается в MFC, или их надо явно включать в дистрибутив?


Можно.
Для этого тебе нужно пересобрать Qt (скрипт configure) с опцией для статической линковки. Но учти, что рпазмер исполняемого файла зааааметно увеличится. Подробнее эта информация есть в QtAssistant.
Re[2]: Qt. Статическая линковка?
От: Аноним  
Дата: 31.05.09 15:52
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Можно.

А>Для этого тебе нужно пересобрать Qt (скрипт configure) с опцией для статической линковки. Но учти, что рпазмер исполняемого файла зааааметно увеличится. Подробнее эта информация есть в QtAssistant.

Кроме этого, ты больше не сможешь использовать Qt под лицензией LGPL.
Re: Qt. Статическая линковка?
От: Аноним  
Дата: 31.05.09 20:39
Оценка:
Здравствуйте, Аноним,

http://rsdn.ru/forum/tools/3380394.flat.aspx
Автор: Programador
Дата: 06.05.09
?
Re[2]: Qt. Статическая линковка?
От: Poirot Россия  
Дата: 01.06.09 09:08
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>Делаю приложение под Windows на Qt4.5, QtCreator (все самое последнее). Можно ли библиотеки QtCore4.dll, QtGui4.dll и т.д. статически прилинковать к exe как это делается в MFC, или их надо явно включать в дистрибутив?


А>Можно.

А>Для этого тебе нужно пересобрать Qt (скрипт configure) с опцией для статической линковки. Но учти, что рпазмер исполняемого файла зааааметно увеличится. Подробнее эта информация есть в QtAssistant.

Ну а с динамической линковкой всё равно придётся тащить с собой эти длл... как бы менять шило на мыло... К сожалению не всегда да и наврено почти всегда на виндовой машине нету Qt библиотек-то в системных папках
Re[3]: Qt. Статическая линковка?
От: Ulitka США http://lazarenko.me
Дата: 03.06.09 14:29
Оценка:
Здравствуйте, Poirot, Вы писали:

P>Ну а с динамической линковкой всё равно придётся тащить с собой эти длл... как бы менять шило на мыло... К сожалению не всегда да и наврено почти всегда на виндовой машине нету Qt библиотек-то в системных папках


Угу, только первый раз при установке. Зато потом auto update может не тащить их, что заметно увеличит скорость загрузки, как минимум.
Re[3]: Qt. Статическая линковка?
От: DIMEDROLL Украина  
Дата: 04.06.09 15:38
Оценка:
А>Кроме этого, ты больше не сможешь использовать Qt под лицензией LGPL.

Это ж почему так?
Re[2]: Qt. Статическая линковка?
От: Mhael Беларусь  
Дата: 05.06.09 11:44
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>Делаю приложение под Windows на Qt4.5, QtCreator (все самое последнее). Можно ли библиотеки QtCore4.dll, QtGui4.dll и т.д. статически прилинковать к exe как это делается в MFC, или их надо явно включать в дистрибутив?


А>Можно.

А>Для этого тебе нужно пересобрать Qt (скрипт configure) с опцией для статической линковки. Но учти, что рпазмер исполняемого файла зааааметно увеличится. Подробнее эта информация есть в QtAssistant.

И хотелось бы узнать у автора топика, на сколько увеличился размер программы в итоге ну и аппетиты по памяти.
Re[4]: Qt. Статическая линковка?
От: Cyberax Марс  
Дата: 05.06.09 11:51
Оценка:
Здравствуйте, DIMEDROLL, Вы писали:

А>>Кроме этого, ты больше не сможешь использовать Qt под лицензией LGPL.

DIM>Это ж почему так?
LGPL требует, чтобы пользователь мог делать изменения в LGPL-ной библиотеке.
Sapienti sat!
Re[5]: Qt. Статическая линковка?
От: LuciferSaratov Россия  
Дата: 05.06.09 12:00
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, DIMEDROLL, Вы писали:


А>>>Кроме этого, ты больше не сможешь использовать Qt под лицензией LGPL.

DIM>>Это ж почему так?
C>LGPL требует, чтобы пользователь мог делать изменения в LGPL-ной библиотеке.

В этом случае тоже можно выкрутиться. Например, предоставить объектный файл, к которому, прилинковав статическую библиотеку, можно получить программу.
Re[5]: Qt. Статическая линковка?
От: DIMEDROLL Украина  
Дата: 05.06.09 12:04
Оценка:
Здравствуйте, Cyberax, Вы писали:
C>LGPL требует, чтобы пользователь мог делать изменения в LGPL-ной библиотеке.
Непонял. На примере пожалуйста.
Re[6]: Qt. Статическая линковка?
От: Cyberax Марс  
Дата: 05.06.09 12:11
Оценка:
Здравствуйте, DIMEDROLL, Вы писали:

C>>LGPL требует, чтобы пользователь мог делать изменения в LGPL-ной библиотеке.

DIM>Непонял. На примере пожалуйста.
http://www.gnu.org/licenses/lgpl-2.1.html

For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights.

Т.е. для статического связывания ты должен предоставить пользователю все объектные файлы, чтобы он мог перелинковать твоё приложение с изменённой библиотекой.

В случае динамического связывания такой проблемы нет — пользователь просто может поменять нужную библиотеку.
Sapienti sat!
Re[7]: Qt. Статическая линковка?
От: DIMEDROLL Украина  
Дата: 05.06.09 12:21
Оценка:
Здравствуйте, Cyberax, Вы писали:
C>Т.е. для статического связывания ты должен предоставить пользователю все объектные файлы, чтобы он мог перелинковать твоё приложение с изменённой библиотекой.
C>В случае динамического связывания такой проблемы нет — пользователь просто может поменять нужную библиотеку.
Я думал что под LGPL можно создавать и продавать приложения на QT, а выходит что нужно поставлять покупателям обьектные файлы в добавок к файлам приложения? О_о
Re[8]: Qt. Статическая линковка?
От: Cyberax Марс  
Дата: 05.06.09 12:42
Оценка:
Здравствуйте, DIMEDROLL, Вы писали:

C>>В случае динамического связывания такой проблемы нет — пользователь просто может поменять нужную библиотеку.

DIM>Я думал что под LGPL можно создавать и продавать приложения на QT
Можно.

DIM>а выходит что нужно поставлять покупателям обьектные файлы в добавок к файлам приложения? О_о

Только если используешь статическое связывание.
Sapienti sat!
Re[9]: Qt. Статическая линковка?
От: DIMEDROLL Украина  
Дата: 05.06.09 12:47
Оценка:
Здравствуйте, Cyberax, Вы писали:
C>Только если используешь статическое связывание.
А для создания PE-файлов(Portable Executable) по другому никак...
Re[10]: Qt. Статическая линковка?
От: Cyberax Марс  
Дата: 05.06.09 13:36
Оценка:
Здравствуйте, DIMEDROLL, Вы писали:

C>>Только если используешь статическое связывание.

DIM>А для создания PE-файлов(Portable Executable) по другому никак...
Ещё раз, при использовании динамического связывания пользователь может просто поменять QT4.dll на свою.
Sapienti sat!
Re[11]: Qt. Статическая линковка?
От: dmitriy_k  
Дата: 07.06.09 06:49
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, DIMEDROLL, Вы писали:


C>>>Только если используешь статическое связывание.

DIM>>А для создания PE-файлов(Portable Executable) по другому никак...
C>Ещё раз, при использовании динамического связывания пользователь может просто поменять QT4.dll на свою.
Интересный правда вопрос...Если приложение(вместе с библиотеками) запаковано чем то вроде BoxedApp Packer'а(и предположим ссылка на отдельный бинарник приложения-всеже есть гденибудь на сайте,BoxedApp Packer — естественно распространять нельзя ) — получаем нарушение LGPL?
Re[12]: Qt. Статическая линковка?
От: Cyberax Марс  
Дата: 07.06.09 10:02
Оценка:
Здравствуйте, dmitriy_k, Вы писали:

C>>Ещё раз, при использовании динамического связывания пользователь может просто поменять QT4.dll на свою.

_>Интересный правда вопрос...Если приложение(вместе с библиотеками) запаковано чем то вроде BoxedApp Packer'а(и предположим ссылка на отдельный бинарник приложения-всеже есть гденибудь на сайте,BoxedApp Packer — естественно распространять нельзя ) — получаем нарушение LGPL?
Для соблюдения LGPL нужно указать где-нибудь в документации URL, по которому можно взять отдельный бинарик с библиотеками. LGPL не требует, чтобы исходные материалы распространялись в каждой поставке.
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.