Как лучше всего узнать, к какой библиотеке может принадлежать функция?

При сборке исходного кода я иногда получаю ошибки «неопределенная ссылка на». Когда это вызовы функций, я хотел бы знать, какие библиотеки нужно связать проще, чем в моей обычной игре в догадки. Любые идеи?

-Ченц

gcc
3
Crazy Chenz 20 Окт 2009 в 22:32

2 ответа

Насколько я знаю, вам не повезло с автоматизированным решением.

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

Я думаю, что инструмент unix "nm" - это то, что вы ищете. Я не знаю о окнах, извините

Что-то вроде следующего должно делать это в Linux:

find . -name "*.so" -print0 | xargs -0 nm -A | egrep ' [TWDB] ' > symbols.out
3
Employed Russian 21 Окт 2009 в 06:10

Вы можете попробовать найти функцию с помощью man или на msdn.microsoft.com в зависимости от ОС. В обоих руководствах указана библиотека, в которой существует функция. В противном случае, если вы используете пользовательскую библиотеку, вы можете использовать документы для этой пользовательской библиотеки. А в противном случае рекомендация Глена использовать nm для идентификации всех символов во всех библиотеках может сделать это.

-1
atk 21 Окт 2009 в 06:35