Как узнать к каким библиотекам обращается программа

Добрый день.
Подскажите новичку.
Имеем прогу на С.
#include
#include
.
Далее по тексту встречаю например функцию subnmrx_by_ss().
.
subnmrx_by_ss(buffer,1024);
.
Вопрос: какой лучший способ узнать из какой библиотеки эта функция? Я конечно могу сделать что-то вроде grep -R func_name ../libs/*. Но может быть есть вариант лучше? Может есть готовая утилитка, к-ая мне красиво напечатает обо всех включенных изве переменных/функциях/и т.д.
Другими словами хочется как можно быстрее понять откуда что-то взято в программе(к-ую кто-то писал несколько лет и она обросла за это время библиотеками и т.п.).
Заранее спасибо!

Сообщения по теме [Сортировка по времени | RSS]

если очень грубо, то когда в исходнике используется к-л внешняя библиотечная функция, можно узнать только три вещи: 1. что она внешняя, 2. что она используется, 3. в каком заголовочном файле (.h) она определена.

состав библиотек, используемых для проекта можно найти в makefile (если таковой есть). они будут указаны либо явно — libfoo.a, либо неявно в виде ключей вида -lfoo. собрать все экспортируемые имена из библиотеки можно с помощью nm(1).

СРОЧНО УДАЛИ ЭТОТ МАЙНКРАФТ ЛАУНЧЕР! 1 ЧАСТЬ

если же речь идет о том, в каком заголовочном файле имеется определение искомой функции, то наверное проще грепом пройтись по директориям, в которых смотрит компилятор. список таких мест тоже в makefile (ну и плюс /usr/include).

все сильно зависит от структуры проекта, больше инфы — точнее ответ.

>Вопрос: какой лучший способ узнать из какой библиотеки эта функция? Я конечно
>могу сделать что-то вроде grep -R func_name ../libs/*. Но может быть
>есть вариант лучше? Может есть готовая утилитка, к-ая мне красиво напечатает
>обо всех включенных изве переменных/функциях/и т.д.

Читайте также:
Программа s market отзывы

есть nm, но она не всегда сможет помочь,

>Другими словами хочется как можно быстрее понять откуда что-то взято в программе(к-ую
>кто-то писал несколько лет и она обросла за это время библиотеками
>и т.п.).

выполни ctags -R директория_исходников заголовков далее в виме set tags=tags и потом контрол+5 g по именам функций

>выполни ctags -R директория_исходников заголовков далее в виме set tags=tags и
>потом контрол+5 g по именам функций

Дополню 🙂

http://midnight-commander.org/wiki/doc/editor/codejump

>>выполни ctags -R директория_исходников заголовков далее в виме set tags=tags и
>>потом контрол+5 g по именам функций
>
>Дополню 🙂
>
>http://midnight-commander.org/wiki/doc/editor/codejump

Спасибо всем! vim+ctags — это вещь. то о чем я мечтал. особенно :TlistOpen.
PS а в midnight’е не получилось у меня.. я его особо и не пользую, но всё же хотелось бы знать как заставить перейти его к нужной функции/переменной. по ссылке сказано «For jump to definition (find tag) you need position cursor at end of the word and press M-Enter». M — это как я понимаю Esc или Alt. Не работает.

Асинхронность, многопоточность, многопроцессность в python | Библиотека asyncio и асинхронный код

>PS а в midnight’е не получилось у меня.. я его особо и

Версия должна быть >= 4.7.0-pre1

>не пользую, но всё же хотелось бы знать как заставить перейти
>его к нужной функции/переменной. по ссылке сказано «For jump to definition
>(find tag) you need position cursor at end of the word
>and press M-Enter». M — это как я понимаю Esc или
>Alt. Не работает.

Да, оно. Должно работать. Версию проверьте.

>[оверквотинг удален]
>
>Версия должна быть >= 4.7.0-pre1
>
>>не пользую, но всё же хотелось бы знать как заставить перейти
>>его к нужной функции/переменной. по ссылке сказано «For jump to definition
>>(find tag) you need position cursor at end of the word
>>and press M-Enter». M — это как я понимаю Esc или
>>Alt. Не работает.
>
>Да, оно. Должно работать. Версию проверьте.

Спасибо!

Источник: www.opennet.ru

Читайте также:
Как написать программу по графику

Debian администратор

Как определить какими библиотеками пользуется программа


By admin ~ Октябрь 31st, 2008. Filed under: Разное.

Если вы хотите перенести программу с одного компьютера на другой или вам нужно определить, какими библиотеками пользуется программа, используйте следующую методику.

Предположим, мы хотим определить какие зависимости у текстового редактора vim. Для этого найдем, где находится исполняемый файл vim, выполнив

unknown% whereis vim
vim: /usr/bin/vim /usr/bin/vim.basic /usr/bin/vim.tiny /etc/vim /usr/share/vim /usr/share/man/man1/vim.1.gz

unknown% ldd /usr/bin/vim
linux-gate.so.1 => (0xb7f37000)
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb7ef2000)
libncurses.so.5 => /lib/libncurses.so.5 (0xb7ec1000)
libselinux.so.1 => /lib/libselinux.so.1 (0xb7ea7000)
libacl.so.1 => /lib/libacl.so.1 (0xb7ea1000)
libgpm.so.2 => /usr/lib/libgpm.so.2 (0xb7e9b000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7d40000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7d3c000)
/lib/ld-linux.so.2 (0xb7f38000)
libattr.so.1 => /lib/libattr.so.1 (0xb7d37000)

К сожалению, есть еще библиотекеи загружаеммые во время выполнения программы — такие библиотеки не возможно идентифицировать.

  • Разбиение жеского диска на разделы
  • Сборка ядер и модулей ядра в Debian
  • Установка звуковых драйверов ALSA

Источник: debianadmin.ru

Как узнать какие для работы определённой программы требуются библиотеки?

Затем переустановил Windows, запустил программу и может выдать ошибку что для работы программы требуется такая-то библиотека, которой в Windows не установлено.

Вопрос: как можно взяв какой-нибудь EXE файл протестировать, к каким системным библиотекам он обращается? Есть ли для этого какие-то специальные тестирующие программы или можно ли как-то это где-нибудь посмотреть в самом Windows, то есть в каких-то логах.

Для чего это нужно?

Просто можно сделать программу, запустить в продажу, продать большому числу людей, а потом может оказаться что она ни у кого не заработала. И тогда в лучшем случае будет стыдно.

комментировать
в избранное
Slavo­ mir [60.1K]
7 лет назад

Вот очень хочется знать, как продать программу, которая ни у кого не заработала, большому числу людей. Это же просто сказочная мечта.

Читайте также:
Как пользоваться программой с1 в компьютере

Во-первых, используемые библиотеки зависят от используемых технологий. Что именно требуется из того, что стандартно в Windows нет программист должен знать еще на этапе разработки.

Во-вторых, используемые программой библиотеки прописаны просто открытым текстом. Откройте любой exe или dll файл в просмоторщике и поищите там строчку «dll».

В-третьих, прежде чем выпустить программу в свет, нужно осуществить ее тестирование в различных операционных системах, а тестирование осуществляется на «чистой» операционке, т.е. как будто ее только что поставили. При таком тестировании все подобные проблемы, как и различные несовместимости должны быть выявлены.

Источник: www.bolshoyvopros.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru