Ich kompiliere ein C-Programm mit dem SPARC RTEMS C-Compiler.Wie bekomme ich Speicherorte von Bibliotheksfunktionen?
Mit der Xlinker -M-Option kann ich eine große Speicherkarte mit vielen Dingen, die ich nicht erkenne, erhalten.
Ich habe auch versucht, das RCC nm-Dienstprogramm, das eine etwas besser lesbare Symboltabelle zurückgibt. Ich nehme an, dass der Speicherort, der von diesem Dienstprogramm für beispielsweise printf angegeben wird, der Speicherort ist, in dem sich printf befindet, und dass jedes Programm, das printf aufruft, diesen Speicherort während der Ausführung erreicht. Ist das eine gültige Annahme?
Gibt es eine Möglichkeit, eine Liste von Standorten für alle Bibliothek/Systemfunktionen zu erhalten? Wenn die Verknüpfung abgeschlossen ist, werden dann nur die Funktionen verknüpft, die die ausführbare Datei aufruft, oder sind es alle Funktionen in der Bibliothek? Es scheint mir Letzteres zu sein, angesichts der Anzahl von Dingen, die ich in der Symboltabelle und der Speicherkarte gefunden habe. Kann ich dafür sorgen, dass nur die benötigten Funktionen verknüpft werden?
Danke für Ihre Hilfe.
Wenn ich die Option -static für den Linker verwende, um die Verwendung von gemeinsam genutzten Bibliotheken zu vermeiden, werden dadurch die mit dynamischen Bibliotheken verbundenen Probleme vermieden? – mandaleeka
Welche Probleme? Ich nehme an, Sie haben doppelte Symboldefinition. In diesem Fall nein. Sie müssen sich verstecken/umbenennen, um den Namenskonflikt zu vermeiden. – dirkgently
Sorry, ich meinte würde nm mir die genaue Antwort geben oder ist die Adresse noch umsetzbar? – mandaleeka