Russian Qt Forum
Ноябрь 23, 2024, 02:30
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Установка, сборка, отладка, тестирование
>
Сбор всех Qt`шных либ в одну
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Сбор всех Qt`шных либ в одну (Прочитано 4893 раз)
strilya
Гость
Сбор всех Qt`шных либ в одну
«
:
Сентябрь 30, 2015, 23:59 »
Доброго времени суток.
Появилась задача следующего эстетического характера: Располагать в корне бинарника все qtшные библиотеки не хочется, но кроме qtшных есть еще достаточно остальных. Полную статическую сборку не предлагать - приложение должно обновляться, и обновлять несколько библиотек проще и легче, чем один здоровый бинарник.
Собственно, вопрос следующий:
Как собрать все qtшные библиотеки в одну?
Самому приходят следующие идеи, которые порождают новые вопросы:
1. Очень профильная пересборка qt с редактированием тучи всего, а все ради того, чтобы посливать в один исходники всех используемых мною библиотек (без серьезных танцев с бубном, редактированием всяких makefile`ов и пр, думаю, не обойтись)
2. Использовать специальный софт, который, думаю, все-же имеется.
В обоих случаях возникает резонный вопрос: Не будет ли проблем с таблицами экспорта ф-ций и прочего.
В общем, прошу все эти аспекты разъяснить, или дать хороший гайдик. Читать и изучать всегда был только рад.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Сбор всех Qt`шных либ в одну
«
Ответ #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
Сообщений: 1177
Re: Сбор всех Qt`шных либ в одну
«
Ответ #2 :
Октябрь 01, 2015, 08:39 »
Цитата: Racheengel от Октябрь 01, 2015, 01:50
А что, обновлять одну огромную либу проще, чем одну экзешку?
как я понял он хочет обновлять только исполняемый файл, а либы в одну запихнуть для эстетства
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Сбор всех Qt`шных либ в одну
«
Ответ #3 :
Октябрь 01, 2015, 09:10 »
Платформа? Напр у людей на OSX приложение без проблем делается одним файлом (точнее бандлом)
На Вындоуз "в одну" вряд ли удастся т.к. должен быть фолдер plugins. Мудрить что-то со сборками совсем мрачно, более реалистично слить все либы в отдельный фолдер чтобы они не болтались (неопрятно) рядом с exe-шником. Но и такая эстетика потребует усилий. В общем, с этим все резво начинают но мало кто достигает финиша.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Сбор всех Qt`шных либ в одну
«
Ответ #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
Гость
Re: Сбор всех Qt`шных либ в одну
«
Ответ #5 :
Октябрь 01, 2015, 10:24 »
Цитата: Racheengel от Октябрь 01, 2015, 01:50
А что, обновлять одну огромную либу проще, чем одну экзешку?
Проще эту одну qtшную либу оставить где-то в папке проекта, а обновлять exeшник и другие библиотеки. Самописные и не очень.
Цитата: Igors от Октябрь 01, 2015, 09:10
Платформа? Напр у людей на OSX приложение без проблем делается одним файлом (точнее бандлом)
На Вындоуз "в одну" вряд ли удастся т.к. должен быть фолдер plugins. Мудрить что-то со сборками совсем мрачно, более реалистично слить все либы в отдельный фолдер чтобы они не болтались (неопрятно) рядом с exe-шником. Но и такая эстетика потребует усилий. В общем, с этим все резво начинают но мало кто достигает финиша.
Платформа: Сначала форточки, потом и под макось. Эстетика требует усилий - окей, я это понимаю. Есть какая-либо литература по этому вопросу со всеми нюансами?
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Сбор всех Qt`шных либ в одну
«
Ответ #6 :
Октябрь 01, 2015, 11:27 »
Цитата: strilya от Октябрь 01, 2015, 10:24
Есть какая-либо литература по этому вопросу со всеми нюансами?
Для такого - сильно сомневаюсь. Переделывайте систему сборки Qt, чтобы она генерировала один большой DLL вместо кучи маленьких, и необходимые плагины типа qindows.dll вкомпилировала в эту большую DLL статически вместо динамики. Потом линкуйтесь с этим большим DLL. Делов-то на месяц-полтора.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Сбор всех Qt`шных либ в одну
«
Ответ #7 :
Октябрь 01, 2015, 12:34 »
Цитата: strilya от Октябрь 01, 2015, 10:24
Платформа: Сначала форточки, потом и под макось.
На OSX все решено на уровне OC, bundle может хранить все что угодно. Что такое "форточки" - не знаю
Записан
strilya
Гость
Re: Сбор всех Qt`шных либ в одну
«
Ответ #8 :
Октябрь 01, 2015, 21:27 »
Цитата: Alex Custov от Октябрь 01, 2015, 11:27
Делов-то на месяц-полтора.
Оптимистично.
Цитата: Igors от Октябрь 01, 2015, 12:34
На OSX все решено на уровне OC, bundle может хранить все что угодно. Что такое "форточки" - не знаю
Будь по вашему. Windows.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Сбор всех Qt`шных либ в одну
«
Ответ #9 :
Октябрь 02, 2015, 06:26 »
Цитата: strilya от Октябрь 01, 2015, 21:27
Цитата: Alex Custov от Октябрь 01, 2015, 11:27
Делов-то на месяц-полтора.
Оптимистично.
Может даже слишком
Цитата: Igors от Октябрь 01, 2015, 12:34
Будь по вашему. Windows.
Тогда я уже все сказал выше.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...