Ich habe eine Verknüpfung Problem. Ich muss eine Verbindung zu einer gemeinsamen Bibliothek libfoo.so
herstellen, die von einer Funktion read
abhängt, die ich selbst in der Datei read.c. definieren möchtenm Berichte Symbol ist definiert, aber LDD Berichte Symbol ist undefined
ich kompilieren und verknüpfen alles zusammen, aber zur Laufzeit erhalte ich die Fehler
/home/bar/src/libfoo.so: undefined symbol: sread.
nm das Symbol Berichte definiert ist
$nm baz | grep sread
00000000000022f8 t sread
aber LDD meldet das Symbol
$ldd -r baz | grep sread
undefined symbol: sread (/home/bar/src/libfoo.so)
nicht definiert ist
Was gibt? Gibt es einen Grund dafür, dass libfoo.so eine gemeinsame Bibliothek ist?
Vielleicht sollten Sie die vollständigen Verbindungslinien für alle Ihre gemeinsamen Objekte und ausführbaren Dateien veröffentlichen, um das Thema zu beleuchten. – lothar