Ich baue ein Projekt, das mehrere gemeinsame Bibliotheken und ausführbare Dateien erstellt. Alle Quelldateien, die zum Erstellen dieser Binärdateien verwendet werden, befinden sich in einem einzelnen/src-Verzeichnis. Daher ist es nicht offensichtlich, herauszufinden, welche Quelldateien zum Erstellen der einzelnen Binärdateien verwendet wurden (es gibt eine Viele-zu-Viele-Beziehung).Wie finden Sie * .c und * .h Dateien, die zum Erstellen einer Binärdatei verwendet wurden?
Mein Ziel ist es, ein Skript zu schreiben, das eine Reihe von C-Dateien für jede Binärdatei analysiert und sicherstellt, dass nur die richtigen Funktionen von ihnen aufgerufen werden.
Eine Option scheint zu versuchen, diese Informationen aus Makefile zu extrahieren. Dies funktioniert jedoch nicht gut mit generierten Dateien und Headern (aufgrund der Abhängigkeit von Includes).
Eine andere Option könnte sein, einfach Call Graphen zu durchsuchen, aber das würde kompliziert werden, weil viele Funktionen mit Funktionszeigern aufgerufen werden.
Irgendwelche anderen Ideen?
Nur aus Neugier: Warum versuchst du das? – stefan
Der Distributionspaket-Mechanismus kennt alle Abhängigkeiten ... –
Haben Sie eine genaue Definition, was "die richtigen Funktionen heißen" bedeutet? Es ist nicht offensichtlich und ist nicht einfach. –