gcc Link-Option, um zu sehen, warum einige Objektdateien binär verknüpft sind

8

Ich habe ein Linkproblem.

Um das Problem zu untersuchen, füge ich -t Linker-Flag (gcc -Wl, -t) hinzu, um zu drucken, welche Bibliotheken verwendet werden und welche Objekte aus statischen Bibliotheken verwendet werden.

Es gibt eine statische Bibliothek, die in einer bestimmten Konfiguration einen Satz von Objektdateien verwendet und in einem anderen Satz.

Gibt es einen Weg (wahrscheinlich ld Flag), um zu sehen, warum ein bestimmtes Objekt (welches zuvor undefinierte Symbol in der Objektdatei definiert ist) binär verknüpft ist und anderes aus derselben statischen Bibliothek nicht?

    
dimba 25.10.2012, 09:21
quelle

2 Antworten

4

Die Flagge, nach der ich gesucht habe, ist -M , die eine Link-Map auf die Standardausgabe druckt.

Von ld (1):

%Vor%

Der zweite Punkt in der Liste ist, was ich gesucht habe.

    
dimba 25.10.2012, 12:20
quelle
1

Da Sie der Frage und der Antwort mehr als einen Monat nach Ihrer letzten Bearbeitung ein Kopfgeld hinzugefügt haben, gehe ich davon aus, dass Sie Ihre eigene Antwort nicht mögen.

Wie ich es verstehe, versuchen Sie herauszufinden, welches Objekt (A) bewirkt, dass ein anderes Objekt (B) verknüpft wird.

Wenn Sie die Kompilierung / Verknüpfung ohne B vorhanden (dh nein in der Befehlszeile), dann sollten Sie Fehlermeldungen erhalten, die Ihnen sagen, warum es benötigt wird, die A verweisen.

Wenn sich B in einer Bibliothek befindet, müssen Sie möglicherweise eine spezielle Version dieser Bibliothek erstellen, die B nicht enthält.

    
walrii 03.12.2012 02:59
quelle

Tags und Links