Sto costruendo un progetto che costruisce più librerie condivise e file eseguibili. Tutti i file di origine utilizzati per creare questi file binari si trovano in una singola directory/src. Quindi non è ovvio capire quali file sorgente sono stati usati per costruire ciascuno dei binari (c'è una relazione molti-a-molti).Come trovare i file * .c e * .h che sono stati usati per creare un binario?
Il mio obiettivo è scrivere uno script che analizzi un set di file C per ogni file binario e si assicuri che vengano chiamate solo le funzioni giuste.
Un'opzione sembra essere quella di provare a estrarre queste informazioni da Makefile. Ma questo non funziona bene con i file e le intestazioni generati (a causa della dipendenza da Include).
Un'altra opzione potrebbe essere semplicemente sfogliare i grafici delle chiamate, ma ciò si complicherebbe, poiché molte funzioni vengono chiamate utilizzando i puntatori di funzione.
Altre idee?
Solo per curiosità: perché ci provi? – stefan
Il meccanismo del pacchetto di distribuzione conosce tutte le dipendenze ... –
Hai una definizione precisa di cosa significa "le funzioni giuste sono chiamate"? Non è ovvio e non è semplice. –