Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Поиск динамической либы по функции?  (Прочитано 1019 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ilya73

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Помогите Plz начинающему Линуксоводу!  8)
Поскольку использую "экзотический" ЯП, то столкнулся со следующим: как найти имя дин.либы по имени функции!
В мастдае было "просто" - ищем в мсдн-е и там в описании есть имя соотв. ДЛЛ, а вот как найти в Линухе?

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Поиск динамической либы по функции?
« Ответ #1 : 13 Августа 2010, 12:56:18 »
Можно так:
find / -name "*.so" -type f -exec nm {} \; | c++filt | grep "function_name"
Но как правило найти доки по функции в гугле и прочитать к какой либе она отностиься и как эту либу в разработке использовать выходит дешевле.

зы А что за "экзотический" ЯП?

Оффлайн ilya73

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Поиск динамической либы по функции?
« Ответ #2 : 13 Августа 2010, 13:21:33 »

зы А что за "экзотический" ЯП?
Спасибки! Бум пробовать!
ЯП - Forth ( www.forth.org.ru) - благо теперь есть Линуксовый релиз!  :D

Пользователь решил продолжить мысль 13 Августа 2010, 13:52:38:
Можно так:
find / -name "*.so" -type f -exec nm {} \; | c++filt | grep "function_name"
Странно! Получаю ~ следующее: nm: /lib/libc-2.11.1.so: no symbols
« Последнее редактирование: 13 Августа 2010, 13:52:38 от ilya73 »

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Поиск динамической либы по функции?
« Ответ #3 : 16 Августа 2010, 11:24:18 »
nm -D
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн ilya73

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Поиск динамической либы по функции?
« Ответ #4 : 17 Августа 2010, 23:16:06 »
nm -D
Пасибки!
Не успел отписаться, использую ~ следующее: nm -DA *.so* | grep -w gtk_init

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Поиск динамической либы по функции?
« Ответ #5 : 18 Августа 2010, 11:09:42 »
Так Вам GTK+ надо?
А там линкер какой? Системный ld или что-то свое экзотическое? А флаги у него тоже экзотические?

А то можно полный набор ключей получить одной командой
$ pkg-config gtk+-2.0 --libs --cflags
-pthread -D_REENTRANT -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12  -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 

Просто пишем компилятору:
gcc исходник.c -o исполняемый_файл `pkg-config gtk+-2.0 --libs --cflags`и имеем щяссе.

Посмотреть какие есть вообще пакеты:
$ pkg-config --list-all
« Последнее редактирование: 18 Августа 2010, 11:12:05 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн ilya73

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Поиск динамической либы по функции?
« Ответ #6 : 30 Августа 2010, 20:31:15 »
Так Вам GTK+ надо?
А там линкер какой? Системный ld или что-то свое экзотическое? А флаги у него тоже экзотические?
Спасибо за совет!
Но у используемого мной интерпретатора нет возможности линковать статические либы.
Есть только возможность использовать вызовы из  динамических либ, ну или как вариант компилить требуемое из статики в динамическую либу, а затем уже вызывать.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Поиск динамической либы по функции?
« Ответ #7 : 31 Августа 2010, 19:46:37 »
У GTK+ нет статических либ.
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

 

Страница сгенерирована за 0.047 секунд. Запросов: 25.