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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сбор всех Qt`шных либ в одну  (Прочитано 4871 раз)
strilya
Гость
« : Сентябрь 30, 2015, 23:59 »

Доброго времени суток.
Появилась задача следующего эстетического характера: Располагать в корне бинарника все qtшные библиотеки не хочется, но кроме qtшных есть еще достаточно остальных. Полную статическую сборку не предлагать - приложение должно обновляться, и обновлять несколько библиотек проще и легче, чем один здоровый бинарник.
Собственно, вопрос следующий:
Как собрать все qtшные библиотеки в одну?

Самому приходят следующие идеи, которые порождают новые вопросы:
1. Очень профильная пересборка qt с редактированием тучи всего, а все ради того, чтобы посливать в один исходники всех используемых мною библиотек (без серьезных танцев с бубном, редактированием всяких makefile`ов и пр, думаю, не обойтись)
2. Использовать специальный софт, который, думаю, все-же имеется.
В обоих случаях возникает резонный вопрос: Не будет ли проблем с таблицами экспорта ф-ций и прочего.

В общем, прошу все эти аспекты разъяснить, или дать хороший гайдик. Читать и изучать всегда был только рад.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Октябрь 01, 2015, 01:50 »

А что, обновлять одну огромную либу проще, чем одну экзешку?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
qate
Супер
******
Offline Offline

Сообщений: 1176


Просмотр профиля
« Ответ #2 : Октябрь 01, 2015, 08:39 »

А что, обновлять одну огромную либу проще, чем одну экзешку?

как я понял он хочет обновлять только исполняемый файл, а либы в одну запихнуть для эстетства

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

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Октябрь 01, 2015, 09:10 »

Платформа? Напр у людей на OSX приложение без проблем делается одним файлом (точнее бандлом)

На Вындоуз "в одну" вряд ли удастся т.к. должен быть фолдер plugins. Мудрить что-то со сборками совсем мрачно, более реалистично слить все либы в отдельный фолдер чтобы они не болтались (неопрятно) рядом с exe-шником. Но и такая эстетика потребует усилий. В общем, с этим все резво начинают но мало кто достигает финиша.

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

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #4 : Октябрь 01, 2015, 09:22 »

Ну, либы и экзешку можно положить в bin/libs, например, а в bin засунуть батник или прогу-стартер, которая будет дергать реальный exe. Но, имхо, овчинка выделки не стоит...
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
strilya
Гость
« Ответ #5 : Октябрь 01, 2015, 10:24 »

А что, обновлять одну огромную либу проще, чем одну экзешку?
Проще эту одну qtшную либу оставить где-то в папке проекта, а обновлять exeшник и другие библиотеки. Самописные и не очень.
Платформа? Напр у людей на OSX приложение без проблем делается одним файлом (точнее бандлом)
На Вындоуз "в одну" вряд ли удастся т.к. должен быть фолдер plugins. Мудрить что-то со сборками совсем мрачно, более реалистично слить все либы в отдельный фолдер чтобы они не болтались (неопрятно) рядом с exe-шником. Но и такая эстетика потребует усилий. В общем, с этим все резво начинают но мало кто достигает финиша.
Платформа: Сначала форточки, потом и под макось. Эстетика требует усилий - окей, я это понимаю. Есть какая-либо литература по этому вопросу со всеми нюансами?
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #6 : Октябрь 01, 2015, 11:27 »

Есть какая-либо литература по этому вопросу со всеми нюансами?

Для такого - сильно сомневаюсь. Переделывайте систему сборки Qt, чтобы она генерировала один большой DLL вместо кучи маленьких, и необходимые плагины типа qindows.dll вкомпилировала в эту большую DLL статически вместо динамики. Потом линкуйтесь с этим большим DLL. Делов-то на месяц-полтора.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #7 : Октябрь 01, 2015, 12:34 »

Платформа: Сначала форточки, потом и под макось.
На OSX все решено на уровне OC, bundle может хранить все что угодно. Что такое "форточки" - не знаю
Записан
strilya
Гость
« Ответ #8 : Октябрь 01, 2015, 21:27 »

Делов-то на месяц-полтора.
Оптимистично.
На OSX все решено на уровне OC, bundle может хранить все что угодно. Что такое "форточки" - не знаю
Будь по вашему. Windows.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Октябрь 02, 2015, 06:26 »

Делов-то на месяц-полтора.
Оптимистично.
Может даже слишком

Будь по вашему. Windows.
Тогда я уже все сказал выше.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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