2010-11-26 29 views
0

J'essaie de comprendre la manière dont un paquet particulier s'intègre dans un projet sur lequel je travaille. Je crois que seulement une partie de ce paquet en fait dans le binaire du projet, et j'ai besoin de savoir exactement quelles parties. Les fonctions de bibliothèque de ce paquet sont appelées à partir de nombreux autres endroits (c'est-à-dire que plusieurs autres paquets en dépendent).Tracer la source en binaire

Je prévois de construire le projet et de le distribuer. Est-ce la seule façon de déterminer quels fichiers source-> binaires je vais distribuer en regardant tous les en-têtes de mes paquets dépendants? Ou y a-t-il une manière plus intelligente d'aborder cela?

Merci à l'avance,

+0

Salut, de qui parle-t-on ici? Demandez-vous comment déterminer les dépendances de package plutôt que les dépendances de bibliothèque? –

+0

Linux (Ubuntu). Je suis déjà au courant des dépendances de paquet, mais j'ai besoin d'un niveau plus profond. * Un peu de * code dans ce paquet est sous licence LGPL, et j'ai besoin de savoir si nous utilisons en fait ce code, ou si c'est simplement assis là intact. – ajwood

Répondre

1

Vous ne nous avez pas donné beaucoup d'informations pour aller, mais voici une méthode qui fonctionne: enlever les parties du paquet et de voir si le projet sera toujours compiler.

+0

Merci, je trouve que les questions sont les meilleures quand elles sont aussi générales que possible. Malheureusement, je trouve parfois difficile d'obtenir la bonne quantité de détails. – ajwood

0

Utilisez nm pour décompresser une bibliothèque statique. Cela liste tous les fichiers et méthodes inclus dans la bibliothèque.

Vous pouvez également essayer d'utiliser des chaînes. Affiche les chaînes définies dans le fichier binaire.

Examinez votre source et voyez si les chaînes que vous définissez sont dans la bibliothèque.

Quelque chose comme gprof pourrait également être utilisé pour voir quelles méthodes sont appelées par votre exécutable.