Название: определение зависимостей библиотеки во время загрузки Отправлено: unkeep от Январь 08, 2015, 11:00 Может кто-нибудь знает как runtime определить зависимости библиотеки?
То есть загружается плагин, который зависит от каких-то библиотек, мне надо узнать о этих зависимостях. Может в QApplication есть какая-то нотификация о факте подключения библиотеки? Название: Re: определение зависимостей библиотеки во время загрузки Отправлено: Igors от Январь 08, 2015, 11:10 На OSX (и, полагаю, на др nix платформах) - легко, c помощью otool -L (два дня назад этим занимался). А вот на Вындоуз хз. Ну DependencyWalker - но не знаю как его юзать "из приложения"
Название: Re: определение зависимостей библиотеки во время загрузки Отправлено: Fregloin от Январь 08, 2015, 15:23 ldd в линукс, в винде как подсказали dependencyWalker
Название: Re: определение зависимостей библиотеки во время загрузки Отправлено: unkeep от Январь 08, 2015, 15:36 блин мне надо программно это установить на этапе загрузки плагина PluginLoader-ом. Как ручками посмотреть я-то знаю
Название: Re: определение зависимостей библиотеки во время загрузки Отправлено: alex312 от Январь 08, 2015, 16:01 a в чем проблема ? Не знаете как запустить внешнюю утилиту и получить ее вывод ?
Название: Re: определение зависимостей библиотеки во время загрузки Отправлено: Fregloin от Январь 08, 2015, 17:46 Боюсь кроссплатформенного функционала такого в Qt не реализовано еще.
Название: Re: определение зависимостей библиотеки во время загрузки Отправлено: Igors от Январь 09, 2015, 08:14 блин мне надо программно это установить на этапе загрузки плагина PluginLoader-ом. Как ручками посмотреть я-то знаю Запускаете утилиту с помощью QProcess, ловите ее вывод и разбираете. Название: Re: определение зависимостей библиотеки во время загрузки Отправлено: Fregloin от Январь 14, 2015, 15:00 кстати в отладке можно увидеть все загруженные либы, т.е. креатор как то это делает, смотрите исходники
Название: Re: определение зависимостей библиотеки во время загрузки Отправлено: __Heaven__ от Январь 14, 2015, 15:15 кстати в отладке можно увидеть все загруженные либы, т.е. креатор как то это делает, смотрите исходники Мне кажется, что это не креатор делает, а дебагерНазвание: Re: определение зависимостей библиотеки во время загрузки Отправлено: Bepec от Январь 14, 2015, 15:57 А если вы захотите, при помощи WinApi вы можете сделать то же самое :D В смысле увидеть все загруженные либы.
Но это платформозависимый код :) Название: Re: определение зависимостей библиотеки во время загрузки Отправлено: Гурман от Январь 14, 2015, 22:47 И что должно получиться, если библиотеки, от которых зависит загружаемая, сами зависят от каких-то, а те от каких-то еще, и т.д.? Это же дерево зависимостей, а не таблица. Причем практически всегда весьма развесистое.
На скриншоте в дереве 1_copy_CI_std15lnc.dll - это моя библиотека, которая именно плагин. Раскрыты только несколько веток из нескольких десятков... Название: Re: определение зависимостей библиотеки во время загрузки Отправлено: Igors от Январь 15, 2015, 08:32 И что должно получиться, если библиотеки, от которых зависит загружаемая, сами зависят от каких-то, а те от каких-то еще, и т.д.? Это же дерево зависимостей, а не таблица. Причем практически всегда весьма развесистое. Могут быть более скромные цели. Напр проверить зависимость от QtCore, если это дебажная версия (или наоборот, или др Qt версия) - то грузить зависящий плагин нельзя, это приведет к краху. |