Russian Qt Forum

Qt => Общие вопросы => Тема начата: qtkoder777 от Январь 12, 2022, 17:38



Название: Статическая линковка в Visual Studio
Отправлено: qtkoder777 от Январь 12, 2022, 17:38
Как сделать чтоб вообще всё было в одном экзешнике. Тащим программу куда угодно, хоть в Win95 и она сразу работает.

Проблемы с запуском QT-программ на других машинах идут постоянно. Доходило до того, что приходилось ставить QT на машину пользователя. Подложенные к экзешнику dll из QT не помогали, в том числе после прописи пути в реестр.

Разница между Win-библиотеками тоже досаждает.



Название: Re: Статическая линковка в Visual Studio
Отправлено: tux от Январь 13, 2022, 10:50
А в чём проблема собрать сам Qt статически и потом уже собрать свою программу тоже статически? Информации по этому в сети вагон и маленькая тележка.


Название: Re: Статическая линковка в Visual Studio
Отправлено: qtkoder777 от Январь 13, 2022, 11:21
В сети рекомендуют поставить опцию /MT и ещё что-то в отношении MFC. Ставил всё и по отдельности, появляются ошибки линкера.

Всё в разных местах, причём не в опциях линкера.

В MS вероятно специально сделали так неудобно чтоб минимизировать совместимость версий Windows особенно при использовании сторонних библиотек. Работаешь в Windows так пиши на .NET.

Сборка QT под Windows то еще занятие, удел истинных гиков, последнее чем буду заниматься.


Название: Re: Статическая линковка в Visual Studio
Отправлено: tux от Январь 13, 2022, 11:48
Тут M$ вообще не при чём. Хотите под Qt статику? Есть два пути: либо купить коммерческую лицензию, либо собрать Qt самостоятельно, исходники то есть.


Название: Re: Статическая линковка в Visual Studio
Отправлено: kambala от Январь 13, 2022, 13:31
а что, ИИ не может это за тебя сделать еще?


Название: Re: Статическая линковка в Visual Studio
Отправлено: qtkoder777 от Январь 13, 2022, 13:37
а что, ИИ не может это за тебя сделать еще?
Его пока предоставили лишь избранным для тестирования. И они уже 30% гитхаба заполонили. А  после тестирования ИИ станет дико дорогим. Пока поэтому кодим ручками.


Название: Re: Статическая линковка в Visual Studio
Отправлено: sergek от Январь 13, 2022, 15:50
Тут M$ вообще не при чём. Хотите под Qt статику? Есть два пути: либо купить коммерческую лицензию, либо собрать Qt самостоятельно, исходники то есть.
А что, после сборки уже не нужно покупать лицензию? ;)


Название: Re: Статическая линковка в Visual Studio
Отправлено: tux от Январь 13, 2022, 16:12
А что, после сборки уже не нужно покупать лицензию? ;)
Если контора получает прибыль - да, нужно. Но, иногда, даже не получая прибыль, хочется, как у ТС - "всё в одном флаконе". И тут может быть дешевле по затратам (нервы тоже в счёт идут) купить коммерческую лицензию и получить статические библиотеки.
Но, можно и собрать - там несложно. Хотя, честно скажу - в винде не пробовал.


Название: Re: Статическая линковка в Visual Studio
Отправлено: DarkHobbit от Январь 15, 2022, 07:44
Насколько критично именно Visual Studio? Для MinGW задача решённая, если что.
И на Win95 я бы особо не рассчитывал, особенно в случае майкрософтовского компилятора, нужный ему рантайм уже даже под XP запросто может не запуститься (вы можете собрать Qt статически, но при этом библиотеки от майкрософта придётся тащить всё равно).

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

Цитировать
Сборка QT под Windows то еще занятие, удел истинных гиков, последнее чем буду заниматься.
Под майкрософтовский компилятор - возможно. Для MinGW у меня даже инструкции (лично написанные) есть.


Название: Re: Статическая линковка в Visual Studio
Отправлено: DarkHobbit от Январь 15, 2022, 08:07
Если контора получает прибыль - да, нужно.
К получению прибыли вопрос ТСа отношение имеет примерно никакое, не надо вводить людей в заблуждение.
Загвоздка исключительно в том, что вы будете отдавать законному получателю вашего продукта. Если вы пользуетесь LGPL-сборкой, то читать надо саму LGPL, а не то, что пишут на qt.io перед кнопкой "Скачать" (там упрощённые формулировки для менеджеров и прочих ЛПРов). А сама LGPL требует именно то, о чём я написал выше - дать возможность получателю менять саму библиотеку. Пути выполнения этого требования разные - либо исходники, либо объектники, либо динамическая компоновка.
Если требования LGPL не устраивают, и вы отдаёте продукт на сторону - наоборот,нужна коммерческая версия, вне зависимости, получаете вы прибыль или нет.