Was genau tut (oder --export-dynamic
auf der Linker-Ebene) und wie bezieht es sich auf die Symbolsichtbarkeit, wie durch die -fvisibility*
Flags oder Sichtbarkeit pragma
s und __attribute__
s definiert?Was genau macht `-rdynamic` und wann genau wird es benötigt?
Für --export-dynamic
, ld(1) erwähnt:
... Wenn Sie „dlopen“ verwenden, um ein dynamisches Objekt zu laden, die zurück auf die Symbole, die durch das Programm definiert nachschlagen muss, anstatt eine andere dynamische Objekt, dann benötigen Sie wahrscheinlich , um diese Option zu verwenden, wenn Sie das Programm selbst verknüpfen. ...
Ich bin mir nicht sicher, ob ich das vollständig verstehe. Könnten Sie bitte ein Beispiel geben, das ohne nicht funktioniert, aber damit macht?
bearbeiten: ich ein paar Dummy-Bibliotheken tatsächlich versucht Kompilieren (einzelne Datei, Multi-Datei, verschiedene -O Ebenen, einige Inter-Funktionsaufrufe, einige versteckte Symbole, einige sichtbar), mit und ohne -rdynamic
, und bis jetzt habe ich byte-identischen Ausgänge bekommen (wenn alle anderen Flags natürlich konstant gehalten werden), was ziemlich rätselhaft ist.
Sie Beispiel ist es völlig klar, was die manpage bedeutet. Danke vielmals! – PSkocik