nm Symbolausgabe t vs T in einer gemeinsam genutzten Bibliothek

Ich habe eine neue Funktion (fuse_lowlevel_notify_inval_directory) in der Sicherungsbibliothek des Benutzerbereichs hinzugefügt. Die Kompilierung und Erstellung von libfuse.so wird fehlerfrei abgeschlossen. Aber wenn meine Anwendung versucht, diese neue Funktion zu verwenden, gibt der Linker einen Fehler aus: undefinierter Verweis auf `fuse_lowlevel_notify_inval_directory 'collect2: ld gab 1 Exit-Status zurück

Wenn ich mich bei nm @ erkundigt ha

nm ../libfuse.so | grep inval
00000000000154ed T fuse_invalidate
**000000000001e142 t fuse_lowlevel_notify_inval_directory**
000000000001e26c T fuse_lowlevel_notify_inval_entry
000000000001e1cb T fuse_lowlevel_notify_inval_inode

T / t bedeutet, dass das Symbol im Textabschnitt vorhanden ist. In Großbuchstaben ist das Symbol global (extern). Ich vermute, das ist das Problem. Die neu hinzugefügte Funktion zeigt t in Kleinbuchstaben an, während andere ältere Funktionen T. in Großbuchstaben anzeigen. Haben Sie eine Vorstellung davon, was ich möglicherweise falsch mache?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage