Темы блога относятся к программированию на языке С++
В основном для C++Qt (Qt5.1) и C++ Builder (RAD 2009 и RAD XE3)
В основном для C++Qt (Qt5.1) и C++ Builder (RAD 2009 и RAD XE3)
LibraryCollector - программа для сборки библиотек для переноса Qt-приложений
Запись от Avazart размещена 15.06.2014 в 15:13
Показов 135999
Комментарии 1
Содержание 1. Предназначение. 2. Как пользоваться LibraryCollector? 3. Теория или принципы работы LibraryCollector. 3. Настройка QtCreator для запуска LibraryCollector как внешней утилиты. 4. Js -сценарий 5. Ссылки.Блоги.Темы.Исходники. 1. Предназначение. Программа LibraryCollector предназначена для получения списка зависимостей. Под зависимостями имеются ввиду динамические библиотеки *.dll/*.so модули и плагины Qt используемые программой. LibraryCollector позволяет выполнить автоматическое копирование этих зависимостей/библиотек в указанную папку для последующего переноса программы на другой компьютер где не установлен Qt или последующего создания из них инсталятора. При копировании LibraryCollector учитывает иерархию папок расположения плагинов Qt. В принципе LibraryCollector это моя альтернатива windeployqt и CQtDeployer с тем отличием что сборка идет на основе анализа библиотек(модулей) уже запущенного процесса собираемой программы на машине на которой есть Qt (запущенной из QtCreator). 2. Как пользоваться LibraryCollector?
Вы можете менять и модифицировать js- cценарии для определения, группировки, копирования библиотек под себя. 3. Теория или принципы работы LibraryCollector. Библиотеки Qt5 условно можно разделить на:
И так LibraryCollector что бы определить все используемое анализирует Ваш процесс используя системные функции (Windows) и просматривая системные файлы (Linux), получая список подгруженных библиотек раскидывает их по группам. Для определения принадлежности библиотеки к группе модулей,плагинам и qml- библиотекам производится сравнение полных путей на предмет вложенности в QTDIR/bin, QTDIR/plugins, QTDIR/qml соответственно. Примечание: в js-сценарии для проверки вложенности используется utils.isSubPath() Другие группы как правило определяются регулярными выражениями. 4. Настройка QtCreator для запуска LibraryCollector как внешней утилиты. LibraryCollector можно запускать из QtCreator, для этого нужно лишь добавить его во внешние утилиты: Поля для заполнения: Программа:
Js - сценарий придает гибкости LibraryCollector и дает возможность изменить поведение сборки для определенных приложений. Скрипт должен содержать три функции которые будут вызываться в процессе работы LibraryCollector, и примерно должен выглядеть так:
update() и copy() вызываются при нажатии на соответствующие кнопки. Внутри скрипта доступны следующие глобальные объекты:
Ссылки: 1. Hard-coded пути в QtCore.dll 2. Qt 5.1 и корректный deployment в Windows 3. Запуск Qt приложений .exe вне Qt Creator Блоги: 1. Деплой Qt5 приложений в Windows. Скандалы, интриги, расследования. Темы: Windows: 1. Поиск окна 2. Захват кнопкой курсора как в Spy++ 3. Qt5 Перенос приложения на другой компьютер Linux: 1. Получить список загруженных библиотек конкретного процесса 2. Поиск окна под курсором 3. Копирование файла и его сим.линка (Linux) Исходники: Последняя версия: https://github.com/Avazart/LibraryCollector Готовые сборки программы: |
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 1
Комментарии
-
Запись от Avazart размещена 15.08.2021 в 21:49