LD_PRELOAD verwendet nicht die richtige Bibliothek

LD_PRELOAD verwendet nicht die richtige Bibliothek

Ich versuche, einen dynamischen Link in einer ausführbaren Datei zu überschreiben.

Ich habe ein ausführbares "Programm"

Der Befehl:

ldd program 

Ausgaben: libstdc++.so.6 => /lib64/libstdc++.so.6

Ich habe eine Bibliothek usw.:

ldd a.so

Ausgaben: libstdc++.so.6 => /mydir/libstdc++.so.6

Ich habe versucht, den Link im ausführbaren Programm wie folgt zu überschreiben:

setenv LD_PRELOAD a.so

wenn ich jetzt meine ausführbare Datei ausführe, erhalte ich:

/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

Warum versucht es zu lesenlibstdc++.so.6aus/lib64/libstdc++.so.6und nicht/mydir/libstdc++.so.6

verwandte Informationen