Трассировка источника в двоичный файл

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

Я планирую построить проект и распространять его. Является ли единственный способ определить, какие исходные> двоичные файлы я буду распространять, просматривая все заголовки в моих зависимых пакетах? Или есть более умный способ приблизиться к этому?

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

2 ответа

Решение

Вы не дали нам много информации для продолжения, но вот метод, который будет работать: удалите части пакета и посмотрите, будет ли проект по-прежнему компилироваться.

Используйте nm, чтобы распаковать статическую библиотеку. Это перечислит все файлы и методы, включенные в lib.

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

Просмотрите ваш источник и посмотрите, есть ли строки, которые вы определили, в библиотеке.

Нечто подобное gprof также можно использовать, чтобы увидеть, какие методы вызываются вашим исполняемым файлом.

Другие вопросы по тегам