LINUX.ORG.RU

как по функции узнать библиотеку


0

0

Добрый день,

я только учусь, еле собрал прогу, которая пользовала синус.. долго думал, потом как-то догадался что надо сказать gcc -lm .. хочется больше так не тормозить, и как-то поживее зная функцию, находить что указывать после -l

Заранее спасибо

anonymous

man man
info libc

anonymous
()

А потом info autoconf info automake

Begemoth ★★★★★
()

Команда nm (из пакета binutils) с ключом --defined-only покажет тебе какие символы/функции экспортирует библиотека (расширение *.so или *.a). В файле /etc/ld.so.conf прописаны пути к библиотекам, которые можно цеплять (плюс /lib и /usr/lib, которые там не прописаны).

Так что узнать где что лежит можно простым grep-ом:

$ nm /lib/* --defined-only -AС|egrep '\<abs\>'

Или так (для .so):

$ find `cat /etc/ld.so.conf|gawk 'BEGIN { print "/lib"; print "/usr/lib" } { print }'|sort -u` -type f -perm -700|xargs nm -AC --defined-only 2>/dev/null|egrep '\<fopen\>'

Где-нибудь наверняка уже есть готовая утилита...

Привет!

masik
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.