Russian Qt Forum
Ноябрь 22, 2024, 18:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Статическая линковка в Visual Studio  (Прочитано 4241 раз)
qtkoder777
Частый гость
***
Offline Offline

Сообщений: 245


Просмотр профиля
« : Январь 12, 2022, 17:38 »

Как сделать чтоб вообще всё было в одном экзешнике. Тащим программу куда угодно, хоть в Win95 и она сразу работает.

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

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

Записан
tux
Global Moderator
Бывалый
*****
Offline Offline

Сообщений: 404



Просмотр профиля
« Ответ #1 : Январь 13, 2022, 10:50 »

А в чём проблема собрать сам Qt статически и потом уже собрать свою программу тоже статически? Информации по этому в сети вагон и маленькая тележка.
Записан

qtkoder777
Частый гость
***
Offline Offline

Сообщений: 245


Просмотр профиля
« Ответ #2 : Январь 13, 2022, 11:21 »

В сети рекомендуют поставить опцию /MT и ещё что-то в отношении MFC. Ставил всё и по отдельности, появляются ошибки линкера.

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

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

Сборка QT под Windows то еще занятие, удел истинных гиков, последнее чем буду заниматься.
Записан
tux
Global Moderator
Бывалый
*****
Offline Offline

Сообщений: 404



Просмотр профиля
« Ответ #3 : Январь 13, 2022, 11:48 »

Тут M$ вообще не при чём. Хотите под Qt статику? Есть два пути: либо купить коммерческую лицензию, либо собрать Qt самостоятельно, исходники то есть.
Записан

kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Январь 13, 2022, 13:31 »

а что, ИИ не может это за тебя сделать еще?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
qtkoder777
Частый гость
***
Offline Offline

Сообщений: 245


Просмотр профиля
« Ответ #5 : Январь 13, 2022, 13:37 »

а что, ИИ не может это за тебя сделать еще?
Его пока предоставили лишь избранным для тестирования. И они уже 30% гитхаба заполонили. А  после тестирования ИИ станет дико дорогим. Пока поэтому кодим ручками.
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #6 : Январь 13, 2022, 15:50 »

Тут M$ вообще не при чём. Хотите под Qt статику? Есть два пути: либо купить коммерческую лицензию, либо собрать Qt самостоятельно, исходники то есть.
А что, после сборки уже не нужно покупать лицензию? Подмигивающий
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
tux
Global Moderator
Бывалый
*****
Offline Offline

Сообщений: 404



Просмотр профиля
« Ответ #7 : Январь 13, 2022, 16:12 »

А что, после сборки уже не нужно покупать лицензию? Подмигивающий
Если контора получает прибыль - да, нужно. Но, иногда, даже не получая прибыль, хочется, как у ТС - "всё в одном флаконе". И тут может быть дешевле по затратам (нервы тоже в счёт идут) купить коммерческую лицензию и получить статические библиотеки.
Но, можно и собрать - там несложно. Хотя, честно скажу - в винде не пробовал.
Записан

DarkHobbit
Самовар
**
Offline Offline

Сообщений: 197


Просмотр профиля
« Ответ #8 : Январь 15, 2022, 07:44 »

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

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

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

Мои проекты на Qt: DoubleContact, LInvert
DarkHobbit
Самовар
**
Offline Offline

Сообщений: 197


Просмотр профиля
« Ответ #9 : Январь 15, 2022, 08:07 »

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

Мои проекты на Qt: DoubleContact, LInvert
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.102 секунд. Запросов: 22.