деревопостроитель для набора библиотек
От: Dair Россия https://dair.spb.ru
Дата: 13.05.17 12:16
Оценка:
Наверняка сделали уже такую штуку чтобы

Есть набор библиотек (lib*.a). Допустим, без исходников.
Они друг от друга как-то зависят.

Задача: построить дерево зависимостей библиотек друг от друга.

Есть ли такое?
Re: деревопостроитель для набора библиотек
От: placement_new  
Дата: 18.05.17 14:31
Оценка:
Здравствуйте, Dair, Вы писали:

D>Есть ли такое?


А в статическиз библиотеках как то зависимости прописаны?
Re: деревопостроитель для набора библиотек
От: fin_81  
Дата: 18.05.17 14:57
Оценка: +1
Здравствуйте, Dair, Вы писали:

D>Есть набор библиотек (lib*.a).

D>...
D>Задача: построить дерево зависимостей библиотек друг от друга.

D>Есть ли такое?


Вряд ли есть. По идее надо вытаскивать импорты и экспорты (man nm) и искать пересечения. Можно загнать в dot файл и отрендерить в удобный для просмотра формат. Или загнать в свою структура данных для обработки.

Поверхностное гугление выдало https://gist.github.com/detunized/9cd1ca3fc2fb949e87c8.
Re: use ldd, Luke!
От: Sheridan Россия  
Дата: 26.08.17 14:10
Оценка:
$ ldd /usr/lib64/libspeechd.so
    linux-vdso.so.1 (0x00007ffecd3fe000)
    libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f02fbc4d000)
    libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00007f02fba43000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f02fb826000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f02fb52b000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f02fb192000)
    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f02faf1f000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f02fad1b000)
    /lib64/ld-linux-x86-64.so.2 (0x000056446c3b5000)


Я думаю, дальше не составит труда дерево построить
Matrix has you...
Re[2]: use ldd, Luke!
От: fin_81  
Дата: 26.08.17 17:38
Оценка: +1
Здравствуйте, Sheridan, Вы писали:

D>>Есть набор библиотек (lib*.a).


S>$ ldd /usr/lib64/libspeechd.so


Думаю, сам определишь где ошибся.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.