Russian Qt Forum
Ноябрь 23, 2024, 08:23
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
определение зависимостей библиотеки во время загрузки
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: определение зависимостей библиотеки во время загрузки (Прочитано 5804 раз)
unkeep
Гость
определение зависимостей библиотеки во время загрузки
«
:
Январь 08, 2015, 11:00 »
Может кто-нибудь знает как runtime определить зависимости библиотеки?
То есть загружается плагин, который зависит от каких-то библиотек, мне надо узнать о этих зависимостях. Может в QApplication есть какая-то нотификация о факте подключения библиотеки?
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: определение зависимостей библиотеки во время загрузки
«
Ответ #1 :
Январь 08, 2015, 11:10 »
На OSX (и, полагаю, на др nix платформах) - легко, c помощью otool -L (два дня назад этим занимался). А вот на Вындоуз хз. Ну DependencyWalker - но не знаю как его юзать "из приложения"
Записан
Fregloin
Супер
Offline
Сообщений: 1025
Re: определение зависимостей библиотеки во время загрузки
«
Ответ #2 :
Январь 08, 2015, 15:23 »
ldd в линукс, в винде как подсказали dependencyWalker
Записан
unkeep
Гость
Re: определение зависимостей библиотеки во время загрузки
«
Ответ #3 :
Январь 08, 2015, 15:36 »
блин мне надо программно это установить на этапе загрузки плагина PluginLoader-ом. Как ручками посмотреть я-то знаю
Записан
alex312
Хакер
Offline
Сообщений: 606
Re: определение зависимостей библиотеки во время загрузки
«
Ответ #4 :
Январь 08, 2015, 16:01 »
a в чем проблема ? Не знаете как запустить внешнюю утилиту и получить ее вывод ?
Записан
Fregloin
Супер
Offline
Сообщений: 1025
Re: определение зависимостей библиотеки во время загрузки
«
Ответ #5 :
Январь 08, 2015, 17:46 »
Боюсь кроссплатформенного функционала такого в Qt не реализовано еще.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: определение зависимостей библиотеки во время загрузки
«
Ответ #6 :
Январь 09, 2015, 08:14 »
Цитата: unkeep от Январь 08, 2015, 15:36
блин мне надо программно это установить на этапе загрузки плагина PluginLoader-ом. Как ручками посмотреть я-то знаю
Запускаете утилиту с помощью QProcess, ловите ее вывод и разбираете.
Записан
Fregloin
Супер
Offline
Сообщений: 1025
Re: определение зависимостей библиотеки во время загрузки
«
Ответ #7 :
Январь 14, 2015, 15:00 »
кстати в отладке можно увидеть все загруженные либы, т.е. креатор как то это делает, смотрите исходники
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: определение зависимостей библиотеки во время загрузки
«
Ответ #8 :
Январь 14, 2015, 15:15 »
Цитата: Fregloin от Январь 14, 2015, 15:00
кстати в отладке можно увидеть все загруженные либы, т.е. креатор как то это делает, смотрите исходники
Мне кажется, что это не креатор делает, а дебагер
Записан
Bepec
Гость
Re: определение зависимостей библиотеки во время загрузки
«
Ответ #9 :
Январь 14, 2015, 15:57 »
А если вы захотите, при помощи WinApi вы можете сделать то же самое
В смысле увидеть все загруженные либы.
Но это платформозависимый код
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: определение зависимостей библиотеки во время загрузки
«
Ответ #10 :
Январь 14, 2015, 22:47 »
И что должно получиться, если библиотеки, от которых зависит загружаемая, сами зависят от каких-то, а те от каких-то еще, и т.д.? Это же дерево зависимостей, а не таблица. Причем практически всегда весьма развесистое.
На скриншоте в дереве 1_copy_CI_std15lnc.dll - это моя библиотека, которая именно плагин. Раскрыты только несколько веток из нескольких десятков...
«
Последнее редактирование: Январь 14, 2015, 22:49 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: определение зависимостей библиотеки во время загрузки
«
Ответ #11 :
Январь 15, 2015, 08:32 »
Цитата: Гурман от Январь 14, 2015, 22:47
И что должно получиться, если библиотеки, от которых зависит загружаемая, сами зависят от каких-то, а те от каких-то еще, и т.д.? Это же дерево зависимостей, а не таблица. Причем практически всегда весьма развесистое.
Могут быть более скромные цели. Напр проверить зависимость от QtCore, если это дебажная версия (или наоборот, или др Qt версия) - то грузить зависящий плагин нельзя, это приведет к краху.
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...