Как я могу создать список символов, используемых продуктом сборки из определенной статически связанной библиотеки? - PullRequest
0 голосов
/ 14 апреля 2010

Допустим, у меня есть проект Visual Studio, который создает Windows EXE или DLL из источника C ++.

Проект статически ссылается на несколько библиотечных (.lib) файлов.

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

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

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

Я просмотрел параметры командной строки и компоновщика, и дампа, но не нашел ничего подходящего.

Ответы [ 2 ]

1 голос
/ 14 апреля 2010

Два способа сделать это в Visual Studio (2005):

  • Добавить / VERBOSE для параметров компоновщика или через графический интерфейс пользователя на страницах свойств проекта -> Компоновщик -> Общие -> Показать ход выполнения = "Показать все сообщения о ходе выполнения". Затем компоновщик выводит, какие функции он связывает с какими библиотеками.

  • Добавьте /MAP:mymapfile.map к параметрам компоновщика или через графический интерфейс пользователя на страницах свойств проекта -> Компоновщик -> Отладка -> Создать файл карты и имя файла карты. Это создает текстовый файл символов и ссылок, с которыми они были связаны.

Это дает вам то, что вам нужно?

0 голосов
/ 14 апреля 2010

Вы можете попробовать использовать утилиту nm из gnu binutils для вывода списка символов файла .lib.

...